我试图在Java中使用TripleDES加密。在Keying Options
下的Wikipedia article中,我要使用选项1,其中All three keys are independent
。
它说从Cipher docs转到reference guide here,但我仍然不清楚。
我正在努力使示例运行,并在不同的项目中使用了这两行:
Cipher c = Cipher.getInstance("DESede");
Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding");
两者都可以编译,所以有什么区别?我应该在另一个上使用吗?使用三个单独的键,这两项都有效吗?
最佳答案
“TripleDES”只是Sun JCE提供程序中“DESede”的别名-两者都返回完全相同的密码。 “DESede”是在每个Java平台上都可以使用的标准名称,但是实际上,“TripleDES”也可能得到广泛支持。
根据this page的说明,SunJCE Triple DES实现支持选项#1和#2:
在实例化密码以使意图清晰时,应始终指定操作模式和填充。否则,实现可以自由选择,这可能会造成混淆。
关于java - DESede和TripleDES对于cipher.getInstance()的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17280104/