PHP は広く使用されているサーバーサイド プログラミング言語であり、Web 開発で広く使用されています。 Web 開発では、特に機密データを扱う場合、セキュリティは重要な考慮事項です。この記事では、PHP における一般的な安全な暗号化および復号化手法について説明します。
#対称暗号化アルゴリズム-
対称暗号化アルゴリズムは、暗号化と復号化に同じキーを使用する暗号化方式です。一般的な対称暗号化アルゴリズムには、DES、3DES、AES などがあります。 PHP では、mcrypt 拡張ライブラリを使用して対称暗号化を実装できます。
以下は対称暗号化に AES を使用する例です:
$plaintext = "Hello, world!";
$key = "mysecretkey";
$iv = "1234567890123456";
$ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_CBC, $iv);
echo base64_encode($ciphertext);
ログイン後にコピー
上記のコードでは、AES アルゴリズムを使用して、キー「mysecretkey」と初期化ベクトル「」を使用して平文を暗号化します。 1234567890123456" 。暗号化された暗号文は、base64 エンコードを通じて出力されます。
非対称暗号化アルゴリズム
非対称暗号化アルゴリズムでは、公開キーと秘密キーのペアのキーを使用します。公開キーはデータの暗号化に使用され、秘密キーはデータの復号化に使用されます。一般的な非対称暗号化アルゴリズムには、RSA および DSA が含まれます。 PHP では、openssl 拡張ライブラリを使用して非対称暗号化を実装できます。
次に、RSA を使用した非対称暗号化の例を示します。
$plaintext = "Hello, world!";
$keyPair = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA
));
openssl_pkey_export($keyPair, $privateKey);
$details = openssl_pkey_get_details($keyPair);
$publicKey = $details['key'];
openssl_public_encrypt($plaintext, $ciphertext, $publicKey);
echo base64_encode($ciphertext);
ログイン後にコピー
上記のコードでは、RSA キー ペアを生成し、公開キーを使用して平文を暗号化します。暗号化された暗号文は、base64 エンコードを通じて出力されます。
ハッシュ関数
ハッシュ関数は、任意の長さのデータを固定長のハッシュ値にマッピングする方法です。一般的なハッシュ関数には、MD5 および SHA シリーズが含まれます。 PHP では、md5() 関数と hash() 関数を使用してハッシュ値を計算できます。
次は、SHA256 を使用してハッシュ値を計算する例です。
$message = "Hello, world!";
$hash = hash('sha256', $message);
echo $hash;
ログイン後にコピー
上記のコードでは、hash() 関数を使用して SHA256 ハッシュ値を計算し、結果を出力します。
ソルテッド ハッシュ アルゴリズム
ソルテッド ハッシュ アルゴリズムは、パスワードのセキュリティを向上させる方法です。これは、ランダムな文字列 (ソルトと呼ばれる) とパスワードを組み合わせてハッシュ化されます。一般的なソルテッド ハッシュ アルゴリズムには、bcrypt や PBKDF2 などがあります。 PHP では、password_hash() 関数を使用してソルト付きハッシュ値を生成できます。
次は、ソルト付きハッシュに bcrypt を使用する例です:
$password = "mypassword";
$salt = "mysalt";
$hash = password_hash($password, PASSWORD_BCRYPT, ['salt' => $salt]);
echo $hash;
ログイン後にコピー
上記のコードでは、password_hash() 関数を使用してソルト付きの bcrypt ハッシュ値を生成し、結果を出力します。
概要:
この記事では、対称暗号化アルゴリズム、非対称暗号化アルゴリズム、ハッシュ関数、ソルテッド ハッシュ アルゴリズムなど、PHP における一般的な安全な暗号化および復号化テクノロジを紹介します。実際のアプリケーション開発では、これらのテクノロジーを正しく選択して使用することで、機密データのセキュリティを保護できます。ただし、セキュリティは複雑な問題であり、開発者はアプリケーションのセキュリティを確保するために、他のセキュリティ関連テクノロジやベスト プラクティスも理解する必要があります。
以上がPHP における安全な暗号化および復号化技術の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。