我有点SecureRandom不清楚.以这里的代码为例:
import java.security.SecureRandom;
import java.math.BigInteger;
public final class SessionIdentifierGenerator{
private static SecureRandom random = new SecureRandom();
public static void main(String[] args) {
nextSessionId();
}
public static String nextSessionId(){
BigInteger ss = new BigInteger(130, random);
System.out.println(ss);
System.out.println(ss.toString(32));
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
一个例子的出局将是:
1107894191825737787218556533052298445977
q1fikf1m0jagvlrmbtdah0mh4p
由于BigInteger是整数,输出是安静可预测的,但我不明白的是,自从我应用toString()方法以来,随机字符串来自哪里,所以我认为这个字符串它将是相同的数字序列但是作为字符串,所以这种讨厌的方式和原因是什么?
谢谢.ps:我不知道以前是否曾经问过,但我没有找到任何东西......原始代码维基