ホームページ  >  記事  >  バックエンド開発  >  PHP のデータ暗号化技術

PHP のデータ暗号化技術

WBOY
WBOYオリジナル
2023-05-23 13:21:27953ブラウズ

PHP はサーバーサイドのスクリプト言語として、機密データの処理によく使用されます。データの暗号化は、機密データを送信または保存する場合に非常に重要です。この記事では、PHP におけるデータ暗号化のテクニックを紹介します。

  1. ハッシュ関数を使用した暗号化

ハッシュ関数は、任意の長さのメッセージを固定長のダイジェストに圧縮する関数です。 PHP には、md5()、sha1() などの一般的なハッシュ関数が組み込まれています。

次は、SHA256 を使用してパスワードをハッシュする例です:

$password = 'password123'; 
$hashedPassword = hash('sha256', $password); //加密后的密码

暗号化にハッシュ関数を使用する利点は、パスワードが暗号化されると、平文に復号化できないことです。 . 確認できます。

    #対称暗号化
対称暗号化とは、暗号化と復号化に同じキーを使用する暗号化方式を指します。 PHP で対称暗号化を実装するには、openssl 拡張機能を使用できます。対称暗号化関数には、openssl_encrypt() および openssl_decrypt() が含まれます。

次はサンプル コードです:

$data = "这是一段敏感内容";

$method = 'AES-256-CBC';
$key = md5('my_secret_key');
$iv = md5('my_iv');

//加密
$encrypted_data = openssl_encrypt($data, $method, $key, 0, $iv);

//解密
$decrypted_data = openssl_decrypt($encrypted_data, $method, $key, 0, $iv);

このサンプル コードでは、暗号化に AES-256-CBC アルゴリズムが使用されます。このうち、キーは md5 ハッシュ アルゴリズムを使用して「my_secret_key」を処理し、IV は md5 ハッシュ アルゴリズムを使用して「my_iv」を処理します。

対称暗号化を使用する場合、キーのセキュリティを確保する必要があることに注意してください。そうでないと、キーがハッカーによって取得され、解読される可能性があります。

#非対称暗号化
  1. 非対称暗号化では、暗号化と復号化に異なるキーが使用されます。非対称暗号化は、openssl 拡張機能を使用して PHP に実装できます。非対称暗号化の主な関数は、openssl_public_encrypt()、openssl_private_decrypt()、openssl_private_encrypt()、および openssl_public_decrypt() です。

以下はサンプル コードです:

$data = "这是一段敏感内容";

//生成密钥对
$config = array(
    "digest_alg" => "sha512",
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA,
);
$res = openssl_pkey_new($config);
openssl_pkey_export($res, $private_key);
$public_key = openssl_pkey_get_details($res);
$public_key = $public_key["key"];

//加密
openssl_public_encrypt($data, $encrypted, $public_key);

//解密
openssl_private_decrypt($encrypted, $decrypted, $private_key);

このサンプル コードでは、最初に RSA 公開キーと秘密キーのペアが生成され、次に公開キーが暗号化に使用され、秘密キーが生成されます。復号化に使用されます。

非対称暗号化では秘密鍵を適切に保管する必要があり、そうでないと漏洩する危険性があることに注意してください。

要約すると、PHP のデータ暗号化技術には、ハッシュ関数暗号化、対称暗号化、および非対称暗号化が含まれます。実際のアプリケーションでは、特定の状況に応じて適切な暗号化方式を選択し、キーの安全性を確保する必要があります。

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

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