Java:RandomStringUtils 随机种子

Ada*_*tan 3 java random apache-commons

我一直在使用RandomStringUtils生成随机 ID 来用作数据库密钥:

\n\n
import org.apache.commons.lang.RandomStringUtils;\npublic class RandomStringTest {\n    public static void main(final String[] args) {\n        for (int i = 0; i <= 10; i++) {\n            final String id = RandomStringUtils.random(8,\n                    "0123456789abcdefghijklmnopqrstuvwxyz");\n            System.out.println(id);\n        }\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

按键空间足够大,

\n\n
len("0123456789abcdefghijklmnopqrstuvwxyz")^8 = 2821109907456 \xe2\x89\x83 10^12\n
Run Code Online (Sandbox Code Playgroud)\n\n

随机机制是否正确播种?在将其应用于生产之前,我需要知道密钥是否已正确分发。

\n\n

顺便说一句,测试代码在执行几次后没有显示重复,但这还远非可靠的证明。

\n

Joo*_*ost 5

我发现的实现中没有提供种子,只有一个new Random(). 但是有一种方法可以让你提供自己的随机源

random(int count, int start, int end, 
        boolean letters, boolean numbers, 
        char[] chars, java.util.Random random)
Run Code Online (Sandbox Code Playgroud)