PHP 7.2 での Mcrypt の削除の準備
PHP 7.2 が近づくにつれて、Mcrypt 拡張機能の非推奨が差し迫っています。 Openssl は実行可能な代替手段として機能しますが、特に暗号化に詳しくない人にとって、この移行をナビゲートするのは困難な場合があります。
克服すべきハードルの 1 つは、IV 保存を備えた Mcrypt の Rijndael-256 CBC モードに依存するコードを、 OpenSSL と同等のもの。現時点では、そのような直接変換は実現できません。その理由は、Rijndael-256 と AES-256 の根本的な違いにあります。
Mcrypt の Rijndael-256 実装は 256 ビットのブロック サイズで動作しますが、Openssl の AES-256 は 128 ビットのブロック サイズに準拠します。結果として、この違いにより、一方を他方に直接置き換えることができなくなります。この制限により、AES-256 との互換性を実現するにはデータの再暗号化が必要になります。
非互換性の問題以外にも、既存のコードにはいくつかの追加のセキュリティ上の懸念があります。
幸いなことに、Openssl は PKCS#5 パディングをネイティブにサポートしています。ただし、これらの懸念に対処し、より高いレベルのデータ保護を提供する defuse/php-encryption などの堅牢な暗号化ライブラリを採用することを強くお勧めします。
以上がMcrypt ベースの PHP コードを PHP 7.2 以降の OpenSSL に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。