ホームページ  >  記事  >  PHPフレームワーク  >  Laravel - 暗号化

Laravel - 暗号化

PHPz
PHPzオリジナル
2024-08-27 10:51:13854ブラウズ

暗号化は、第三者のユーザーが情報を読み取ることができないように、いくつかのアルゴリズムを使用してプレーン テキストをメッセージに変換するプロセスです。これは、転送される情報を侵入者が狙う可能性が低くなるため、機密情報を送信する場合に役立ちます。

暗号化は、暗号化と呼ばれるプロセスを使用して実行されます。暗号化されるテキストは平文と呼ばれ、暗号化後に得られるテキストまたはメッセージは暗号文と呼ばれます。暗号文を平文に変換するプロセスは復号と呼ばれます。

LaravelはAES-256AES-128暗号化を使用し、暗号化にOpen SSLを使用します。 Laravelに含まれるすべての値は、プロトコルメッセージ認証コードを使用して署名されているため、暗号化されると基になる値は改ざんできなくなります。

構成

Laravelでkeyを生成するために使用されるコマンドを以下に示します-

php artisan key:generate

このコマンドは PHP セキュア ランダム バイト ジェネレーターを使用しており、以下のスクリーンショットに示すような出力が表示されることに注意してください -

Artisan Key

上記のコマンドはキーの生成に役立ちますWebアプリケーションで使用できます。以下に示すスクリーンショットを確認してください。-

暗号化の値は、config/app.php ファイル内で適切に調整されており、このファイルには、暗号化用の 2 つのパラメーター、つまり keycipher が含まれています。このキーを使用する値が適切に調整されていない場合、Laravel で暗号化されたすべての値は安全ではなくなります。これらの値は、OpenSSL および AES-256 暗号を使用して暗号化されます。すべての暗号化された値は、暗号化された文字列の変更をチェックするためにメッセージ認証コード (MAC) で署名されます。

以下に示すコードはコントローラーで言及され、秘密または機密メッセージを保存するために使用されます。

fill([
         'secret' => encrypt($request->secret)
      ])->save();
   }
}

Laravel - 暗号化復号化プロセス

値の復号化は、

復号化ヘルパー

を使用して行われます。次のコード行に注目してください -

use IlluminateContractsEncryptionDecryptException;

// Exception for decryption thrown in facade
try {
   $decrypted = decrypt($encryptedValue);
} catch (DecryptException $e) {
   //
}

無効な MAC が使用されているために復号化プロセスが成功しない場合は、適切な例外がスローされることに注意してください。

以上がLaravel - 暗号化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。