PHP 入門: 暗号化と復号化

王林
王林オリジナル
2023-05-20 15:12:061337ブラウズ

インターネットの継続的な発展に伴い、データ セキュリティの問題に注目する人がますます増えています。プログラマーとして、データのセキュリティを確保するために機密データを暗号化する方法を理解する必要があります。プログラミング言語の中でも、PHP は複数の暗号化および復号化アルゴリズムをサポートする一般的に使用される言語です。この記事では、データのセキュリティをより良く保護するために役立つ PHP の暗号化および復号化機能について紹介します。

1. 暗号化アルゴリズム

  1. MD5 暗号化アルゴリズム

MD5 は、任意の長さのメッセージを 128 ビットに圧縮できる一般的に使用されるハッシュ暗号化アルゴリズムです。 -bit のハッシュ値。 MD5 暗号化アルゴリズムは不可逆的かつ独自であるため、ファイル検証やパスワード保存などに広く使用されています。 PHP では、暗号化に md5() 関数を使用できます。例:

$password = '123456';
$enc_password = md5($password);
echo $enc_password;

出力は次のとおりです: e10adc3949ba59abbe56e057f20f883e

  1. SHA 暗号化アルゴリズム

SHA アルゴリズムは、一般的に使用されるもう 1 つのハッシュ暗号化アルゴリズムであり、SHA-1、SHA-256、SHA-384、SHA-512 およびその他のバリアントが含まれます。中でも SHA-256 は、任意の長さのメッセージを 256 ビットのハッシュ値に圧縮できる、広く使用されている安全なハッシュ関数です。 PHP では、SHA 暗号化に hash() 関数を使用できます。例:

$password = '123456';
$enc_password = hash('sha256', $password);
echo $enc_password;

出力は次のようになります: 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8

  1. AES 暗号化アルゴリズム

AES アルゴリズム データを効率的に暗号化および復号化できる対称暗号化アルゴリズムです。 AES アルゴリズムでは暗号化と復号化に同じキーが使用されるため、キーのセキュリティを確保する必要があります。 PHP では、AES 暗号化と復号化に openssl_encrypt() 関数と openssl_decrypt() 関数を使用できます (例:

$data = 'Hello World';
$key = 'my_key';
$iv = 'my_iv';
$enc_data = openssl_encrypt($data, 'AES-256-CBC', $key, 0, $iv);
echo $enc_data;
$dec_data = openssl_decrypt($enc_data, 'AES-256-CBC', $key, 0, $iv);
echo $dec_data;

出力は次のとおりです: EHvqTaB gclTvQiLoLsQwA==Hello World

2. 復号アルゴリズム

  1. MD5 復号化アルゴリズム

MD5 アルゴリズムは不可逆であるため、MD5 暗号化結果を復号化することはできません。これが、MD5 アルゴリズムがパスワード暗号化に広く使用されている理由の 1 つです。

  1. SHA 復号化アルゴリズム

MD5 アルゴリズムと同様に、SHA アルゴリズムも不可逆的であるため、SHA 暗号化結果を復号化することはできません。唯一の方法は総当たりで解読することですが、この方法には膨大なコンピューティング リソースと時間が必要です。

  1. AES 復号化アルゴリズム

AES アルゴリズムは暗号化と復号化に同じキーを使用するため、openssl_decrypt() 関数を通じて復号化できます。ただし、キーのセキュリティを確保する必要があります。そうでないと、ブルートフォースを使用してキーを解読して、暗号化されたデータの元のコンテンツを取得することができます。

結論

この記事では、誰もがデータ セキュリティをより適切に保護できるようにするために、PHP で一般的に使用される暗号化および復号化アルゴリズムを紹介します。暗号化アルゴリズムを使用する場合は、情報漏洩や改ざんを防ぐために鍵の安全性を確保する必要があることに注意してください。同時に、データセキュリティ保護を強化するために、ブルートフォースクラッキングなどの攻撃手法を習得することも必要です。

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

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