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はデータ検証と署名機能も提供して、データの整合性とそのソースの信頼性を確保します。
デジタル署名を検証するには、 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拡張機能を使用する方法を紹介します。これらの操作を通じて、データのセキュリティと整合性をより適切に保証できます。この記事があなたを助けることを願っています。