Triple-DES(> 128ビット)とプレーンDES(64ビット)を混同しているようです。Java 1.5を使用して、トリプル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に記載されているJava1.5に適切な関数を使用しているようです。コードを読んだところ、DerbyはトリプルDESをプレーンDESとは異なり処理していないことがわかりました...強力な暗号化を使用していると本当に信頼できますか?