我想基于一些预定义的种子值生成一个秘密密钥(128位)。
目前我正在使用javax.crypto.KeyGenerator (AES)生成密钥使用安全随机。
我怎么能传递我自己的,而不是使用secureRandom对象。
我当前使用的代码:
//
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128,SecureRandom random); // 128 bits key size
key = kgen.generateKey();
//
Thank You .
可以设置SecureRandom
的种子。
SecureRandom random = new SecureRandom();
random.setSeed(1000L);
在测试时,我注意到,如果您在任何时候更改种子,则必须重新创建KeyGenerator
,以获得一致的结果。