【发布时间】:2011-06-18 14:12:29
【问题描述】:
现在我正在学习密码学,我对 JCE 很感兴趣,但我对 KeyGenerator 类感到困惑。我知道这个类可以为对称算法生成一个密钥,但我不明白为什么我应该使用这个类?因为我可以使用 SecretKeyFactory 自己创建一个密钥并使用它来初始化密码对象,对吧?
喜欢下面这段代码
// Create Key
DESKeySpec desKeySpec = new DESKeySpec(key);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
// Create Cipher
Cipher desCipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
desCipher.init(Cipher.ENCRYPT_MODE, secretKey);
然后和这段代码比较
KeyGenerator generator = KeyGenerator.getInstance("AES", "BC");
generator.init(192);
Key encryptionKey = generator.generateKey();
它们之间有什么区别?他们做同样的事情吗?
另外,在什么情况下应该选择使用“getEncoded()”方法??
【问题讨论】:
标签: java security encryption