PHPでの暗号化とハッシュ化 – PHPで始めるプログラミング
PHPにおける暗号化とハッシュ化は、データの安全性を確保するための重要な技術です。この記事では、これらの技術の違いと実装方法について説明します。
暗号化とは
暗号化は、データを人間が読めない形式に変換し、必要に応じて元の形式に戻す技術です。これにより、データの機密性を確保することができます。
例
以下に、PHPでの暗号化の基本的な例を示します。
$plaintext = "これは秘密のメッセージです";
$method = "AES-256-CBC";
$key = "秘密の鍵";
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($method));
$encrypted = openssl_encrypt($plaintext, $method, $key, 0, $iv);
$result = base64_encode($encrypted . "::" . $iv);
echo $result;
さらに、データを復号するには以下のコードを使用します。
list($encrypted_data, $iv) = explode("::", base64_decode($result), 2);
$decrypted = openssl_decrypt($encrypted_data, $method, $key, 0, $iv);
echo $decrypted;
ハッシュ化とは
ハッシュ化は、一方向性のアルゴリズムを使用してデータを固定長の文字列に変換する技術です。この技術は、元のデータを復元不可能にするため、パスワードの保存などに利用されます。
例
例えば、PHPでのパスワードのハッシュ化は次のように行います。
$password = "mypassword";
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
echo $hashed_password;
また、パスワードの検証は以下のコードを使用します。
$user_input = "mypassword";
if (password_verify($user_input, $hashed_password)) {
echo "パスワードが一致しました";
} else {
echo "パスワードが一致しません";
}
まとめ
引用元: PHP公式マニュアル暗号化とハッシュ化はセキュリティの観点から非常に重要な技術です。それぞれの技術を適切に用いることで、データの安全性を効果的に保持することができます。
これらの技術についての詳細は、PHP公式マニュアル(外部リンク)をご参照ください。