インターネット技術の急速な発展と普及に伴い、暗号化技術はデータの送信、保存、処理において特に重要になっています。データの安全性を確保するため、インターネット分野では暗号化技術が基礎技術となっています。
Web サイト開発では、ユーザーのプライバシーとセキュリティを確保するために、ユーザー データを暗号化して保存することが必要になることがよくあります。この記事では、ThinkPHP6 をフレームワークとして使用し、暗号化アルゴリズムを使用してユーザー データを暗号化および復号化する方法を紹介します。
暗号化処理を行う場合、暗号化方式を選択する必要があります。一般的な暗号化アルゴリズムには、DES、3DES、AES などが含まれます。これらのアルゴリズムにはそれぞれ、独自の長所と短所があります。ただし、実際の開発では、ビジネス ニーズや暗号化のセキュリティなどのさまざまな要素に基づいて選択できます。
この記事では、一般的に使用される暗号化アルゴリズムである AES-256-CBC を紹介します。このアルゴリズムは、安全性の高い Advanced Encryption Standard (AES) 暗号化方式であり、複数のプログラミング言語やシステム プラットフォームと互換性があります。
AES-256-CBC 暗号化アルゴリズムを使用するには、openssl 拡張機能をインストールする必要があります。 openssl が有効になっているかどうかは、phpinfo() 関数を通じて確認できます。
openssl が有効になっていない場合は、次の手順で有効にできます。
ステップ 1. php_openssl.dll をダウンロードし、PHP の ext ディレクトリにコピーします。
ステップ 2. php.ini ファイルに次のステートメントを追加します。 extension=php_openssl.dll
ステップ 3. Web サーバーを再起動します。
上記の手順を完了すると、暗号化に openssl 拡張機能を使用できるようになります。
暗号化処理に暗号アルゴリズムを使用する場合、暗号アルゴリズムのキーと初期ベクトルを使用する必要があります。このうち、キーは暗号化アルゴリズムの鍵となるパラメータであり、初期ベクトルは暗号化結果が毎回異なることを保証するパラメータである。暗号化のセキュリティを向上させるために、これら 2 つのパラメーターにランダム生成を使用することをお勧めします。
具体的な実装プロセスは次のとおりです。
ステップ 1. 暗号化アルゴリズムのキーと初期ベクトルを定義します。
define('AES_KEY', 'xxxxxxxxxxxxxxxx'); define('AES_IV', 'xxxxxxxxxxxxxxxx');
ステップ2. 暗号化処理を行う場合は、まず暗号化が必要なデータをシリアライズし、シリアライズ結果をJSON文字列に変換します。
$data = [ 'id' => 123, 'name' => '张三', 'age' => 30 ]; $serializeData = serialize($data); $jsonData = json_encode($serializeData);
ステップ 3. JSON 文字列を暗号化します。
$encryptData = openssl_encrypt($jsonData, 'AES-256-CBC', AES_KEY, 0, AES_IV);
この時点で、データの暗号化は完了しました。暗号化されたデータはデータベースに保存することも、送信前に送信中に暗号化することもできます。
暗号化されたデータを利用する場合には、暗号化されたデータを復号する必要があります。
具体的な実装プロセスは次のとおりです。
ステップ 1. まず、暗号化されたデータを取得します。
$encryptData = 'xxxxxxxxxxxxxxxxxx';
ステップ 2. 暗号化されたデータを復号化します。
$decryptData = openssl_decrypt($encryptData, 'AES-256-CBC', AES_KEY, 0, AES_IV);
ステップ 3. 復号化された JSON 文字列をデータ オブジェクトに変換します。
$serializeData = json_decode($decryptData); $data = unserialize($serializeData);
これで、暗号化データの復号化が完了しました。
概要
この記事では、AES-256-CBC 暗号化アルゴリズムを使用してデータの暗号化と復号化を実装するプロセスを紹介します。キーと初期ベクトルをランダムに生成することにより、暗号化アルゴリズムの安全性が向上します。同時に、開発者の参考となる、シンプルで効率的な暗号化アルゴリズムの実装方法も提供します。
以上がThinkPHP6 を使用してデータの暗号化と復号化を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。