助けてください。
iOSアプリケーションを開発しました。文字列を 3DES アルゴリズムで暗号化しようとしましたが、Java コードとは異なる結果になりました。キーは md5 で、サイズは 24 バイトである必要があります。私の友人はプレーンテキストを Java で暗号化し、暗号化された base64 文字列を取得しました。しかし、私は異なる結果を得ます。:(
どこが間違っていますか?
助けてください。
iOSアプリケーションを開発しました。文字列を 3DES アルゴリズムで暗号化しようとしましたが、Java コードとは異なる結果になりました。キーは md5 で、サイズは 24 バイトである必要があります。私の友人はプレーンテキストを Java で暗号化し、暗号化された base64 文字列を取得しました。しかし、私は異なる結果を得ます。:(
どこが間違っていますか?
md5 は 128 ビット (16 バイト) のハッシュを出力しますが、3DES は 168 ビット (21 バイト) のキーを取ります。md5 ハッシュを暗号化および/または復号化アルゴリズムに渡すと、途中でパディングが発生する可能性があります。
SHA256 (256 ビット ハッシュを出力する) を使用して出力を 168 ビットに切り詰めるか、3DES の代わりに AES-256 を使用し、完全な 256 ビット ハッシュをキーとして使用することをお勧めします。それよりも、PBKDF2のような適切なキー派生関数を使用して、文字列パスワードからキーを作成することをお勧めします。