PHP 7.2 での Mcrypt の削除の準備: Mcrypt から Openssl へのコード変換
PHP 7.2 の出現により、人気の Mcrypt 拡張機能は段階的に廃止されます。開発者としては、この変更に備え、より安全な Openssl 代替案の採用を検討することが重要です。
この記事は、開発者が移行中に直面する共通の課題、つまり、AES 256 を維持しながらコードを Mcrypt から Openssl に変換することに焦点を当てています。 CBC と IV。
次の Mcrypt について考えてみましょう。 code:
function encrypt($masterPassword, $data) { // Mcrypt AES 256 CBC operations $key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize); $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_CBC, $iv); return base64_encode($iv . $encrypted); } function decrypt($masterPassword, $base64) { // Mcrypt AES 256 CBC operations $key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize); $data = base64_decode($base64); $iv = substr($data, 0, $ivSize); $encrypted = substr($data, $ivSize, strlen($data)); $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CBC, $iv); return trim($decrypted); }
このコードを Openssl に変換するには、決定的な違いに注意する必要があります。Mcrypt の Rijndael-256 は AES-256 と同じではありません。 OpenSSL は、256 ビット キーの Rijndael-128 である AES-256 をサポートしています。
したがって、残念ながら、コードを直接変換することはできません。適切な AES-256 操作を使用してすべてのデータを再暗号化する必要があります。
さらに、現在の Mcrypt 暗号化スキームには認証、適切なパディング、およびバイト セーフが欠如しています。セキュリティを向上させるために、defuse/php-encryption などのより堅牢な暗号化ライブラリを採用することを強くお勧めします。
Mcrypt と Openssl の違いを理解し、既存の暗号化スキームの欠点に対処することで、効果的に次のような準備をすることができます。 PHP 7.2 で Mcrypt を削除し、暗号化されたデータの整合性とセキュリティを維持します。
以上がPHP Mcrypt 暗号化コードを PHP 7.2 の OpenSSL に移行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

thesecrettokeepingaphp-poweredwebsterunningsmootlyunderheavyloadinvolvesseveralkeystrategies:1)emform opcodecoduceSciptionexecutiontime、2)aatabasequerycachingwithiThing withiThistolessendavasoload、

コードをより明確かつ維持しやすくするため、依存関係が関心(DI)に注意する必要があります。 1)DIは、クラスを切り離すことにより、よりモジュール化されます。2)テストとコードの柔軟性の利便性を向上させ、3)DIコンテナを使用して複雑な依存関係を管理しますが、パフォーマンスの影響と円形の依存関係に注意してください。

はい、最適化されたAphPossibleandessention.1)CachingingusapCutoredatedAtabaseload.2)最適化、効率的なQueries、およびConnectionPooling.3)EnhcodeCodewithBultinctions、Avoididingglobalbariables、およびUsingopcodeching

keyStrategIestsoSificlyvoostphpappliceperformanceare:1)useopcodecachinglikeToreexecutiontime、2)最適化abaseの相互作用とプロペラインデックス、3)3)構成

aphpDependencyInjectionContaineriSATOULTAINATINAGECLASSDEPTINCIES、強化測定性、テスト可能性、および維持可能性。

SELECT DEPENTENCINGINOFCENT(DI)大規模なアプリケーションの場合、ServicElocatorは小さなプロジェクトまたはプロトタイプに適しています。 1)DIは、コンストラクターインジェクションを通じてコードのテスト可能性とモジュール性を改善します。 2)ServiceLocatorは、センター登録を通じてサービスを取得します。これは便利ですが、コードカップリングの増加につながる可能性があります。

phpapplicationscanbeoptimizedforspeedandEfficiencyby:1)enabingopcacheinphp.ini、2)PreparedStatementswithpordatabasequeriesを使用して、3)LoopswithArray_filterandarray_mapfordataprocessing、4)の構成ngincasaSearverseproxy、5)

PHPemailvalidationinvolvesthreesteps:1)Formatvalidationusingregularexpressionstochecktheemailformat;2)DNSvalidationtoensurethedomainhasavalidMXrecord;3)SMTPvalidation,themostthoroughmethod,whichchecksifthemailboxexistsbyconnectingtotheSMTPserver.Impl


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 中国語版
中国語版、とても使いやすい

ドリームウィーバー CS6
ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
