我试图在Java中使用TripleDES加密。从维基百科的文章下Keying Options,我想用选项1,其中All three keys are independent。
Keying Options
All three keys are independent
从密码文档,它说去参考指南这里,但它仍然是我不清楚。
我正在努力使示例运行,并在不同的项目中使用了这两行:
Cipher c = Cipher.getInstance("DESede"); Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding");
两者都可以编译,所以有什么区别?我应该在另一个上使用吗?这两个都可以使用三个单独的键来工作吗?
“ TripleDES”只是Sun JCE提供程序中“ DESede”的别名-两者都返回完全相同的密码。“ DESede”是在每个Java平台上都应使用的标准名称,但实际上,“ TripleDES”可能也得到了广泛的支持。
根据此页面,SunJCE Triple DES实现支持选项#1和#2:
密钥大小必须等于112或168。 密钥大小为112将生成带有2个中间密钥的Triple DES密钥,密钥大小为168将生成带有3个中间密钥的Triple DES密钥。
密钥大小必须等于112或168。
密钥大小为112将生成带有2个中间密钥的Triple DES密钥,密钥大小为168将生成带有3个中间密钥的Triple DES密钥。
在实例化密码以使意图清晰时,应始终指定操作模式和填充。否则,实现可以自由选择,这可能会造成混淆。