我一直在寻找一种简单的 Java算法来生成伪随机字母数字字符串.在我的情况下,它将被用作一个唯一的会话/密钥标识符,它"很可能"在500K+生成过程中是唯一的(我的需求实际上并不需要更复杂的东西).
理想情况下,我可以根据我的唯一性需求指定长度.例如,生成的长度为12的字符串可能看起来像"AEYGF7K0DM1X".
我希望在Windows,MacOS以及Linux(如果可能的话)上获得一台带有Java的计算机的唯一ID.它可能是磁盘UUID,主板S/N ......
Runtime.getRuntime().exec 可以使用(它不是applet).
想法?
有关此主题的SO上有几篇帖子.每个人都谈到一个特定的方法,所以想在一个问题中进行比较.
我正在尝试实现一个功能,我们可以在日志文件中识别某些事件.这些事件需要与唯一ID相关联.我正在尝试为这个独特的ID生成策略.ID必须包含两部分:一些静态信息+一些动态信息当需要调试事件时,可以搜索日志.我有三种方式:
对于此问题的范围,不考虑多个JVM.我需要在一个JVM上以有效的方式生成唯一ID.此外,我将无法使用数据库相关的解决方案.
上述3种策略中哪一种效果最好?
我正在尝试生成固定长度的唯一标识符,例如Megaupload为上传的文件生成的ID.
例如:
在这个使用AZ和0-9并且固定长度为8的例子中,总的不同组合是2,821,109,907,456.
如果已经生成了一个生成的id,该怎么办?这些ID将存储在数据库中,不应多次使用.
我怎样才能在Java中实现这一目标?
谢谢.