我想制造一个随机盐..。
我正在这样做,但每次都得到同样的盐,即使我重新启动了程序。我用println检查
SecureRandom random = SecureRandom.getInstance("NativePRNGBlocking");
byte[] salt = new byte[32];
random.nextBytes(salt);
System.out.println(salt);
return salt;如何产生随机盐?我想给每个用户一个单独的盐。
发布于 2014-08-10 18:58:50
salt数组中的字节实际上是不同的,至少除非NativePRNGBlocking实现被破坏。我想问题在你的支票上。字节数组的toString方法不打印数组中的值,因此以这种方式打印salt数组是无用的。尝试打印单个值:
for(byte b: salt) {
System.out.print(b + " ");
} 或者您可以在调试器中检查它们。
发布于 2014-08-10 19:11:33
SecureRandom类支持“SHA1PRNG”伪随机数产生算法。
试试下面的代码,它对我来说很好,而且总是很独特。
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
//Create array for salt
byte[] salt = new byte[32];
//Get a random salt
sr.nextBytes(salt);
//return salt
System.out.println( salt.toString());希望它能解决你的问题。
https://stackoverflow.com/questions/25043220
复制相似问题