ホームページ  >  記事  >  バックエンド開発  >  PHP 関数を使用して暗号化と復号化を行うにはどうすればよいですか?

PHP 関数を使用して暗号化と復号化を行うにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-07-24 09:01:061629ブラウズ

暗号化と復号化に PHP 関数を使用するにはどうすればよいですか?

現代のインターネット環境では、データのセキュリティが特に重要です。重要な情報を保護するには、多くの場合、機密データの暗号化と復号化を行い、悪意のある取得を防ぐ必要があります。 PHP は、一般的に使用されるサーバー側スクリプト言語として、暗号化および復号化操作を実行するためのさまざまな関数を提供します。この記事では、暗号化と復号化に PHP 関数を使用する方法と、対応するコード例を紹介します。

1. 暗号化と復号化の基本概念

暗号化と復号化は、1 対の相互操作です。つまり、暗号化アルゴリズムを通じて平文を暗号文に変換し、同じアルゴリズムまたは関連するアルゴリズムを使用します。暗号文を暗号文に変換します。テキストは平文に変換されます。このプロセスでは、暗号化アルゴリズムが鍵となります。

PHP で一般的に使用される暗号化アルゴリズムには、対称暗号化と非対称暗号化が含まれます。

  1. 対称暗号化: 暗号化と復号化に同じキーを使用します。一般的に使用される対称暗号化アルゴリズムには、DES、AES などが含まれます。対称暗号化アルゴリズムは高速で、大量のデータの暗号化と復号化に適しています。サンプル コードは次のとおりです。
$key = 'myKey';
$data = 'Hello, world!';

// 加密
$encryptedData = openssl_encrypt($data, 'AES-128-ECB', $key);

// 解密
$decryptedData = openssl_decrypt($encryptedData, 'AES-128-ECB', $key);

echo $encryptedData; // 输出:cnBEVmgzcmxaY3FFc3BlQXpPZGpjdz09
echo $decryptedData; // 输出:Hello, world!
  1. 非対称暗号化: 暗号化と復号化に 1 組のキーを使用します。一方は公開キー、もう一方は秘密キーです。一般的に使用される非対称暗号化アルゴリズムには RSA があります。非対称暗号化アルゴリズムはセキュリティが高く、データ交換や証明書署名などのシナリオに適しています。サンプルコードは以下のとおりです。
// 生成密钥对
$keyPair = openssl_pkey_new(array(
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_RSA
));

// 提取私钥
openssl_pkey_export($keyPair, $privateKey);

// 提取公钥
$publicKey = openssl_pkey_get_details($keyPair)["key"];

$data = 'Hello, world!';

// 加密
openssl_public_encrypt($data, $encryptedData, $publicKey);

// 解密
openssl_private_decrypt($encryptedData, $decryptedData, $privateKey);

echo base64_encode($encryptedData); // 输出:QaWFCDzF2HM6zLQ+...
echo $decryptedData; // 输出:Hello, world!

2. その他の応用シナリオ

PHP の暗号化関数は、通常の文字列の暗号化と復号化に加えて、次のようなシナリオにも適用できます。 。

  1. パスワードの暗号化: ユーザーがシステムに登録してログインするとき、ユーザー データのセキュリティを確保するために、通常、パスワードを暗号化して保存する必要があります。サンプル コードは次のとおりです:
$password = '123456';

// 加密
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);

// 验证密码
if (password_verify($password, $hashedPassword)) {
    echo '密码正确';
} else {
    echo '密码错误';
}
  1. URL 暗号化: 機密データを他のページに渡す必要がある場合があります。データが悪意を持って傍受されるのを防ぐために、暗号化機能を使用できます。 URLパラメータの暗号化に使用されます。サンプル コードは次のとおりです。
$data = 'Hello, world!';

// 加密
$encryptedData = urlencode(base64_encode($data));

// 解密
$decryptedData = base64_decode(urldecode($encryptedData));

echo $encryptedData; // 输出:SGVsbG8sIHdvcmxkIQ%3D%3D
echo $decryptedData; // 输出:Hello, world!

上記は、暗号化と復号化に PHP 関数を使用するための一般的なシナリオとサンプル コードです。実際のアプリケーションでは、データのセキュリティを向上させるために、特定のニーズに応じて適切な暗号化アルゴリズムと機能を選択する必要があります。

概要:

この記事では、暗号化と復号化に PHP 関数を使用する方法を紹介し、関連するコード例を示します。これらの暗号化機能を学習して理解することで、機密データをより適切に保護し、システムのセキュリティを向上させることができます。もちろん、暗号化アルゴリズムと機能の選択は、実際のニーズとセキュリティ要件に基づいて行う必要があります。この記事がお役に立てば幸いです!

以上がPHP 関数を使用して暗号化と復号化を行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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