背景:
現在、PHP アプリケーションはデータ暗号化に Mcrypt を使用しています。 Blowfish 暗号と ECB モード。ただし、暗号化のために OpenSSL に移行するという課題に直面します。
主な違い:
解決策:
大幅な再コーディングを行わずにシームレスに移行するには、次の手順に従います:
暗号化データの再作成: 事前にデータを PKCS#7 で手動でパディングします。 Mcrypt で暗号化します。コードの例を以下に示します。
$key = "anotherpassword1"; $str = "does it work 12"; $enc = mcrypt_encrypt(MCRYPT_BLOWFISH, $key, $str."", MCRYPT_MODE_ECB);
復号化に OpenSSL を使用する: 暗号化されたデータを再作成した後、OpenSSL を使用して正しい暗号を使用して復号化し、モード:
$key = "anotherpassword1"; $enc = "0e93dce9a6a88e343fe5f90d1307684c"; $dec = openssl_decrypt($enc, 'bf-ecb', $key, true); echo $dec;
注: Mcrypt (56) と OpenSSL (0) では異なる IV 長が必要であると述べました。ただし、ECB モードは IV を使用しません。
これらの手順に従うことで、大規模なコード変更を必要とせずに Mcrypt から OpenSSL に移行でき、既存の暗号化データとの互換性が確保されます。
以上がコードを大幅に変更せずに Mcrypt から OpenSSL に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。