我正在尝试生成固定长度的唯一标识符,例如 Megaupload 为上传的文件生成的 ID。
例如:
- ALGYTAB5
- BCLD23A6
在此示例中,使用 A-Z 和 0-9,固定长度为 8,不同的组合总数为 2,821,109,907,456。
如果生成的 ID 之一已被占用怎么办。这些 ID 将存储在数据库中,不应多次使用。
我如何在 Java 中实现它?
谢谢。
最佳答案
嗯...您可以通过以下方式模仿较小的 GUID
。将字符串的前 4 个字节作为编码的当前时间 - 在 Unix 之后经过的秒数。最后 4 个只是随机组合。在这种情况下,两个 ID 重合的唯一方法是它们是在同一秒构建的。由于其他 4 个随机字符,这种情况的可能性非常低。
伪代码:
get current time (4 byte integer
id[0] = 1st byte of current time (encoded to be a digit or a letter)
id[1] = 2nd
id[2] = 3rd
id[3] = 4th
id[4] = random character
id[5] = random character
id[6] = random character
id[7] = random character
关于java - Java中如何生成固定长度的唯一标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584484/