似乎将 Triple-DES(>128 位)与普通 DES(64 位)混淆了。我正在尝试使用 Java 1.5 使用 Triple DES(或 DESede)加密 Derby 数据库
我偶然发现这个讨论论坛消息关于 JDK 1.5 的问题,因此检查以确保它确实使用的是 DESede 而不是普通的 DES。当我使用三重 DES(168 位)URL 创建数据库时
jdbc:derby:MySecureDB;dataEncryption=true;encryptionAlgorithm=DESede/CBC/NoPadding;bootPassword=$ecureC@deCanBr@kE0074242
我仍然能够打开它并使用(纯)DES(64 位)URL 访问它
jdbc:derby:MySecureDB;dataEncryption=true;encryptionAlgorithm=DES/CBC/NoPadding;bootPassword=$ecureC@deCanBr@kE0074242
这不是我期望的行为!!!我应该无法使用错误的加密算法打开它。我怎样才能确保它真的用正确的(> 128 位)算法对其进行加密?
Derby 似乎对JCECipherProvider.java中提到的 Java 1.5 使用了正确的函数。我对代码的阅读表明,Derby 处理三重 DES 与普通 DES 不同……我真的可以相信它使用的是强加密吗?