Jak stworzyć bezpieczny losowy klucz AES w Javie?

Jaki jest zalecany sposób generowania bezpiecznego, losowego klucza AES w Javie przy użyciu standardowego JDK?

W innych postach znalazłem to, ale używając aSecretKeyFactory może być lepszy pomysł:

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

Byłoby wspaniale, gdyby odpowiedź zawierała wyjaśnienie, dlaczego jest to dobry sposób generowania klucza losowego. Dzięki!

questionAnswers(3)

yourAnswerToTheQuestion