ホームページ  >  記事  >  バックエンド開発  >  PHPの暗号化方式にはどのようなものがありますか?

PHPの暗号化方式にはどのようなものがありますか?

zbt
zbtオリジナル
2023-07-17 11:32:303877ブラウズ

php 暗号化方式は次のとおりです: 1. MD5 暗号化 (メッセージ ダイジェスト アルゴリズム 5); 2. SHA 暗号化 (セキュア ハッシュ アルゴリズム); 3. パスワード ハッシュ暗号化 (ソルトによるハッシュ); 4. 対称暗号化 (対称暗号化) ); 6. 非対称暗号化。

PHPの暗号化方式にはどのようなものがありますか?

このチュートリアルの動作環境: Windows10 システム、php8.1.3 バージョン、DELL G3 コンピューター。

PHP は、Web サイト開発やデータベース管理で広く使用されている、人気のあるサーバー側プログラミング言語です。セキュリティは、データの送信および保存中に重要な考慮事項です。機密情報のセキュリティを保護するために、PHP はさまざまな暗号化アルゴリズムと暗号化方式を提供します。この記事では、いくつかの一般的な PHP 暗号化テクノロジを紹介します。

1. MD5 暗号化 (メッセージ ダイジェスト アルゴリズム 5)

MD5 は、任意の長さのデータを固定長の文字列に変換できる一般的に使用される暗号化アルゴリズムです。 PHP では、md5() 関数を通じて MD5 暗号化を実装できます。

サンプル コード:

$data="HelloWorld";
$encryptedData=md5($data);
echo$encryptedData;

MD5 で暗号化された文字列は、32 文字の 16 進数に似ており、不可逆的です。つまり、暗号化から復元することはできません。 . 文字列は元のデータを復元します。

2. SHA 暗号化 (セキュア ハッシュ アルゴリズム)

SHA は、データの整合性とセキュリティの検証に広く使用されているパスワード ハッシュ関数です。 PHP は、SHA-1、SHA-256、SHA-512 などのさまざまな SHA アルゴリズムを提供します。 SHA 暗号化は、hash() 関数を通じて実装できます。

サンプル コード:

$data="HelloWorld";
$encryptedData=hash("sha256",$data);
echo$encryptedData;

SHA によって暗号化される文字列の長さは、アルゴリズムによって異なります。 MD5 と同様に、SHA 暗号化は元に戻すことができません。

3. パスワード ハッシュ暗号化 (ソルトによるハッシュ)

ハッシュ暗号化は、パスワードやその他の機密情報を保存するためによく使用される一方向の暗号化方法です。 MD5 や SHA とは異なり、ハッシュ暗号化では通常、セキュリティを強化するために「ソルト」が使用されます。ソルトはランダムに生成された文字列で、暗号化前に元のデータに追加されます。 PHP では、password_hash() 関数を使用してパスワード ハッシュ暗号化を行うことができます。

サンプル コード:

$password="mypassword";
$options=array('cost'=>12);
$encryptedPassword=password_hash($password,PASSWORD_BCRYPT,$options);
echo$encryptedPassword;

password_hash() 関数は、パスワードとソルトを含む文字列を生成します。これらの文字列は、後の検証のためにデータベースに保存されます。

4. 対称暗号化

対称暗号化では、データの暗号化と復号化に同じキーを使用します。 PHP では、openssl_encrypt() 関数と openssl_decrypt() 関数を使用して対称暗号化操作を実行できます。

サンプル コード:

$data="HelloWorld";
$key="mykey";
$encryptedData=openssl_encrypt($data,"AES-128-ECB",$key);
echo$encryptedData;

上記の例では、暗号化に AES-128 アルゴリズムを使用しています。

5. 非対称暗号化

非対称暗号化では、暗号化と復号化に 1 組の鍵が使用され、一方は暗号化に使用され、もう一方は復号化に使用されます。 PHP では、openssl_private_encrypt() 関数と openssl_public_decrypt() 関数を使用して、非対称暗号化操作を実行できます。

サンプル コード:

$data="HelloWorld";
$privateKey=openssl_pkey_get_private(file_get_contents("private.pem"));
openssl_private_encrypt($data,$encryptedData,$privateKey);
echo$encryptedData;
$publicKey=openssl_pkey_get_public(file_get_contents("public.pem"));
openssl_public_decrypt($encryptedData,$decryptedData,$publicKey);
echo$decryptedData;

上記の例では、openssl_pkey_get_private() 関数を通じて秘密キー ファイルが取得され、openssl_private_encrypt() 関数を通じてデータが暗号化されます。 ) 関数。 openssl_pkey_get_public() 関数を使用して公開キー ファイルを取得し、最後に openssl_public_decrypt() 関数を使用してデータを復号化します。

概要:

PHP は、データのセキュリティを確保するためのさまざまな暗号化アルゴリズムと方法を提供します。適切な暗号化方式の選択は、状況とニーズに応じて異なります。 MD5 や SHA などのハッシュ暗号化方式はデータの整合性の検証に適していますが、パスワード ハッシュ暗号化はパスワードやその他の機密情報の保存に使用されます。対称暗号化と非対称暗号化は、データの送信および保存時の暗号化操作に適しています。実際のニーズに基づいて、適切な暗号化テクノロジーを選択してデータのセキュリティを強化できます。 。

以上がPHPの暗号化方式にはどのようなものがありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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