ホームページ > バックエンド開発 > PHPチュートリアル > Mcrypt ベースの PHP コードを PHP 7.2 以降の OpenSSL に移行するにはどうすればよいですか?

Mcrypt ベースの PHP コードを PHP 7.2 以降の OpenSSL に移行するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-04 01:57:10
オリジナル
143 人が閲覧しました

How Can I Migrate My Mcrypt-Based PHP Code to Openssl in PHP 7.2 and Beyond?

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 との互換性を実現するにはデータの再暗号化が必要になります。

非互換性の問題以外にも、既存のコードにはいくつかの追加のセキュリティ上の懸念があります。

  • 不足認証の: HMAC が存在しないため、データは脆弱なままになります。改ざん。
  • 不適切なパディング: パディングにゼロ バイトを使用すると、安全なブロック モード暗号化に必要な PKCS#5 パディングなどの業界のベスト プラクティスに準拠できません。
  • バイト セーフティ: 文字列操作における mb_substr() への依存

幸いなことに、Openssl は PKCS#5 パディングをネイティブにサポートしています。ただし、これらの懸念に対処し、より高いレベルのデータ保護を提供する defuse/php-encryption などの堅牢な暗号化ライブラリを採用することを強くお勧めします。

以上がMcrypt ベースの PHP コードを PHP 7.2 以降の OpenSSL に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート