我一直在编写javax.crypto.Cipher
代码,并且StackOverflow已经回答了很多问题,所以我很欣赏这个网站中包含的信息。我确实有一个问题,我在这个网站上找不到答案。
以下代码生成一个SecretkeySpec:
try {
keyGen = KeyGenerator.getInstance("AES");
}
catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
secureRandomCipher = new SecureRandom();
seed = new Random().nextLong();
secureRandomCipher.setSeed(seed);
try {
secureRandomIV = SecureRandom.getInstance("SHA1PRNG");
}
catch (NoSuchAlgorithmException noSuchAlgorithm) {
System.out.println(noSuchAlgorithm.getMessage());
}
keyGen.init(128, secureRandomCipher);
Key encryptionKey = keyGen.generateKey();
encryptionKey是一个带有" AES"的SecretKeySpec。算法
我是否应该明确使用“SecretKeySpec”'比如
Key decryptionKey = new SecretKeySpec(encryptionKey.getEncoded(), encryptionKey.getAlgorithm());
或者我正在做的就是足够的。从代码长度的角度来看,我可以看到一个优势。