58

標準のJDKを使用して、Javaで安全なランダムAESキーを生成する推奨される方法は何ですか?

他の投稿でこれを見つけましたが、を使用するSecretKeyFactory方が良いアイデアかもしれません:

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
SecureRandom random = new SecureRandom(); // cryptograph. secure random 
keyGen.init(random); 
SecretKey secretKey = keyGen.generateKey();

回答に、ランダム キーを生成するのに適した方法である理由の説明が含まれていれば、それは素晴らしいことです。ありがとう!

4

3 に答える 3

7

他の投稿にはたくさんの良いアドバイスがあります。これは私が使用するものです:

Key key;
SecureRandom rand = new SecureRandom();
KeyGenerator generator = KeyGenerator.getInstance("AES");
generator.init(256, rand);
key = generator.generateKey();

別の乱数プロバイダーが必要な場合は、私がテスト目的で行うことがありますが、rand を次のように置き換えてください。

MySecureRandom rand = new MySecureRandom();
于 2015-11-15T17:08:27.873 に答える