gpt4 book ai didi

java - KeyGenerator 特殊的 key 与特殊的种子

转载 作者:行者123 更新时间:2023-12-01 12:37:05 26 4
gpt4 key购买 nike

RandomGenerator 应该为每个唯一种子生成唯一 key ,这是否正确?

我编写了以下代码,但对于相同的种子,它生成不同的字节数组 - 为什么?

public static byte[] getRawKey(byte [] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(128, sr);
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
return raw;
}

最佳答案

SecureRandom 的 javadoc 说:

Many SecureRandom implementations are in the form of a pseudo-random number generator (PRNG), which means they use a deterministic algorithm to produce a pseudo-random sequence from a true random seed. Other implementations may produce true random numbers, and yet others may use a combination of both techniques.

所以,不,SecureRandom 不保证它产生的结果是由其种子的值确定性决定的。相反:如果 SecureRandom 不是基于种子生成确定性序列的 PRNG,则它会更安全。

关于java - KeyGenerator 特殊的 key 与特殊的种子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483959/

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