我需要生成6个字母数字字符的保留代码,该保留代码在Java中是随机且唯一的。

使用UUID.randomuuid().toString()尝试过,但是id太长,并且要求它只能是6个字符。

有什么方法可以实现这一目标?

只是为了澄清,(因为这个问题被标记为重复)。
我发现的其他解决方案只是生成随机字符,在这种情况下还不够。我需要合理地确保不会再次生成随机代码。

最佳答案

考虑使用hashids库生成整数的带盐哈希值(您的数据库ID或其他随机整数可能更好)。

http://hashids.org/java/

Hashids hashids = new Hashids("this is my salt",6);
String id = hashids.encode(1, 2, 3);
long[] numbers = hashids.decode(id);

关于java - Java程序生成唯一且随机的六个字母数字代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32578195/

10-10 15:16