我有点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; } }
一个例子的出局将是:
1107894191825737787218556533052298445977
q1fikf1m0jagvlrmbtdah0mh4p
由于BigInteger
是整数,输出是安静可预测的,但我不明白的是,自从我应用toString()
方法以来,随机字符串来自哪里,所以我认为这个字符串它将是相同的数字序列但是作为字符串,所以这种讨厌的方式和原因是什么?
谢谢.ps:我不知道以前是否曾经问过,但我没有找到任何东西......原始代码维基