PHPのmcrypt
への依存関係が非常に重要で重要ないくつかの巨大なレガシーシステムがあります(データベースのデータストレージを含む)。 PHP 7.2(これはすでに正常に機能していました)にアップグレードするときに、このライブラリを維持する方法を見つける必要があります。
私のローカルテスト環境はWindowsです。ライブ環境はCentOSで実行されます。
私が見た答えのいくつかは、復号化してmcryptをopensslに変更することです(復号化するデータがたくさんあるため、現時点では不可能だと思います)。
下位のPHP mcrypt
- supportを含むバージョンをダウンロードし、拡張機能をコピーしてphp.iniに追加する方法もあります(フォルダーもわかりません)。
PHP= 5.6にダウングレードすることは、セキュリティの問題のために適切ではありません。
このシナリオで何ができるのでしょうか?
基本的に、あなたはすべての可能性について言及していると思いますが、選択肢はありません。 PHP 5.6このアプローチには未来はありません 。
MCryptは、PHPをアップグレードする主な理由の1つであるPHPから削除されました。セキュリティ。MCryptライブラリはもうメンテナンスされていません。したがって、MCrypt拡張機能をインストールすることも悪い考えです。しかし、それは一時的な解決策になる可能性があります(たとえば、これらの指示に従ってください .io/community/articles/how-to-install-the-php-mcrypt-extension.html )。
唯一の良い解決策は、mcryptから何かに移行することです。 Stackoverflowのこのトピックに関する質問は既にあります(例: McryptからOpenSSL への暗号化ライブラリのアップグレード)。あるいは、暗号化ライブラリを使用することもできます。大量のコード/データを移行するのは苦痛かもしれませんが、これはこの場合の最も未来志向のアプローチです。
mcrypt
オプション/コードに関するコードまたは情報がないことに注意してください。
おそらく、mcrypt
で使用される非標準のnullパディングの唯一の問題です。ヌルパディングをサポートしない(非標準)別の実装で復号化するには、パディングなしで復号化してから、ヌルパディングを削除します。
mcrypt
と同じ暗号化も必要な場合は、nullパディングを追加し、パディングなしで暗号化します。
本当に現在の暗号化を移行するか、暗号化にmcrypt
互換性がある(またはそうでない)フラグを追加することを検討してください。