現在の位置: ホーム> 最新記事一覧> PHP SSL暗号化と復号化、検証、署名方法の詳細な説明

PHP SSL暗号化と復号化、検証、署名方法の詳細な説明

gitbox 2025-06-29

SSL暗号化と復号化

SSL(Secure Socketsレイヤー)は、インターネット通信を保護し、クライアントとサーバー間のデータ送信の暗号化を保証するプロトコルです。 PHPでは、OpenSSL拡張によって提供される関数を使用して、SSLの暗号化と復号化関数を実装できます。

暗号化されたデータ

PHPでは、 OpenSSL_ENCRYPT機能を使用できます。これが簡単な暗号化の例です。

 
$data = 'Hello, World!';
$key = 'mysecretkey';
$encryptedData = openssl_encrypt($data, 'AES-256-CBC', $key, 0, 'myiv');
echo $encryptedData;

上記のコードでは、AES-256-CBCアルゴリズムを使用して$データを暗号化します。 $キーは暗号化キー、$ IVは初期ベクトルで、最終暗号化の結果は$ necryptedData変数に保存されます。

データを復号化します

ciphertextを復号化するには、 openssl_decrypt関数を使用できます。復号化の例は次のとおりです。

 
$encryptedData = '...'; // 暗号化されたデータ
$key = 'mysecretkey';
$decryptedData = openssl_decrypt($encryptedData, 'AES-256-CBC', $key, 0, 'myiv');
echo $decryptedData;

このコードでは、AES-256-CBCアルゴリズムを使用して$ necryptedDataを復号化し、復号化されたデータは$ DecryptedData変数に保存されます。

SSL検証と署名

暗号化と復号化に加えて、SSLはデータ検証と署名機能も提供して、データの整合性とそのソースの信頼性を確保します。

データを確認します

デジタル署名を検証するには、 opensSl_verify関数を使用できます。ここに検証の例があります:

 
$data = 'Hello, World!';
$signature = '...'; // デジタル署名
$publicKey = openssl_get_publickey(file_get_contents('public.pem'));
$isValid = openssl_verify($data, $signature, $publicKey, OPENSSL_ALGO_SHA256);
if ($isValid) {
    echo 'Data is verified.';
} else {
    echo 'Data is not verified.';
}

このコードは、公開キーを介して$データの署名を検証します。検証が成功した場合、$ isValid変数は真であり、それ以外の場合は偽りになります。

署名データ

データに署名するには、 OpenSSL_SIGN関数を使用できます。ここに署名の例があります:

 
$data = 'Hello, World!';
$privateKey = openssl_get_privatekey(file_get_contents('private.pem'));
openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);
echo $signature;

このコードは、秘密キーで$データに署名し、署名結果を$署名変数に保存します。

要約します

この記事では、PHPでSSL暗号化、復号化、検証、および署名関数を実装するためにOpenSSL拡張機能を使用する方法を紹介します。これらの操作を通じて、データのセキュリティと整合性をより適切に保証できます。この記事があなたを助けることを願っています。