我有兴趣生成具有以下属性的(安全)随机字符串:
字符串的长度应为 12-13 位/字符长。
我知道 Apache commons 中有一个类可以帮助生成随机字符串,但是没有包含特殊字符的选项。
我也知道关于 SO 的其他一些类似问题,但是它们都没有完全解决这些要求。
到目前为止,我已经尝试了以下方法:
import java.security.SecureRandom;
public final class SessionIdentifierGenerator {
private SecureRandom random = new SecureRandom();
public String nextSessionId() {
return
new BigInteger(130, random).toString(32);
}
}
Run Code Online (Sandbox Code Playgroud)
但它不包含来自 4 个点中的每一个的字符集。
我也试过:
static final String AB = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static Random rnd = new Random();
String randomString( int len )
{
StringBuilder sb = new StringBuilder( len );
for(int i = 0; …Run Code Online (Sandbox Code Playgroud)