PHP を使用してデータを暗号化するために Triple DES アルゴリズムを使用しています。次に、C# Windows フォーム アプリケーションを使用して暗号化を解除します。
\0\0\0\0\0\0\0\0
一部のデータを復号化すると、 PHP で暗号化された元のテキストの末尾にあることがわかります。何が原因でしょうか?
PHP を使用してデータを暗号化するために Triple DES アルゴリズムを使用しています。次に、C# Windows フォーム アプリケーションを使用して暗号化を解除します。
\0\0\0\0\0\0\0\0
一部のデータを復号化すると、 PHP で暗号化された元のテキストの末尾にあることがわかります。何が原因でしょうか?
暗号化アルゴリズムでは、データが特定のバイト数の倍数である必要があります。データの長さが適切でない場合は、データを埋めるために null 文字が追加されます。これは、復号化後に表示されるものです。これは予想されることであり、それらを削除するだけで済みます。
mcrypt_encrypt
デフォルトでは、ゼロパディングという不適切な選択を使用します。mcrypt_encryptページのユーザー コメントで説明されているように、代わりに PKCS7 パディングを使用します。