如何在Java

时间:2016-07-12 04:51:08

标签: java random

我想生成一个具有64位熵的令牌,请分享您的想法我该如何实现?

谢谢

2 个答案:

答案 0 :(得分:3)

您可以使用java.security.SecureRandom.nextBytes(byte[])这可以为您提供所需字节长度的安全随机数。

答案 1 :(得分:2)

这将生成一个15个ASCII字符的随机字符串,不包括空格。

Random rnd = new Random();
char[] buf = new char[15];
for (int i = 0; i < buf.length; i++)
    buf[i] = (char)(33 + rnd.nextInt(127 - 33));
System.out.println(buf);

样本输出(根据https://apps.cygnius.net/passtest/具有熵)

E%`}%/1sj\a*c6R     entropy: 82.353
e.vu{c#l0<kLVSv     entropy: 76.322
M-VyT?lS~mfv?KR     entropy: 87.385
/:qW8;GnG4g`DgU     entropy: 91.172
_:NIvU5HdLS/2[b     entropy: 83.262
(mv/*i9<lG:L#Z:     entropy: 89.5
mwao4,H~3'kxhTM     entropy: 86.711
?|a<(Ulm/D-:j_f     entropy: 82.091
4.^7u_T"Xk{}([>     entropy: 83.459
(fd?X4usO7No$m_     entropy: 73.448