gpt4 book ai didi

java - 了解 SecureRandom 字符串生成器?

转载 作者:行者123 更新时间:2023-12-03 01:22:59 25 4
gpt4 key购买 nike

关于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:我不知道以前是否有人问过,但我没有找到任何东西......原码wiki

最佳答案

您正在调用 toString(32),如 its javadoc表示,

Returns the String representation of this BigInteger in the given radix.

因此,您要询问以 32 为基数的数字的字符串表示形式,而不是传统的以 10 为基数的数字。如果您传递了 16,您将获得十六进制格式的数字,其中数字从 0 开始到f。如果您传递了 8,您将得到一个八进制数,数字从 0 到 7。

关于java - 了解 SecureRandom 字符串生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20555307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com