PHP openssl関数 使い方入門:暗号化・復号化を解説

PHP内で、OpenSSLライブラリは暗号化や復号、デジタル証明書の生成、署名の検証などを行うための関数群を提供しています。以下にいくつか一般的なOpenSSL関数の使用例を示します:

  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'];
  1. データの暗号化と復号化:
$data = 'Hello, World!';
$encrypted = '';
openssl_public_encrypt($data, $encrypted, $publicKey);
$decrypted = '';
openssl_private_decrypt($encrypted, $decrypted, $privateKey);
echo $decrypted; // Output: Hello, World!
  1. 数字署名の生成と検証:
$data = 'Hello, World!';
$signature = '';
openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256);
$verified = openssl_verify($data, $signature, $publicKey, OPENSSL_ALGO_SHA256);
echo $verified; // Output: 1 (verified)
  1. 自己署名証明書を作成する:
$dn = array(
    'countryName' => 'US',
    'organizationName' => 'Example Company',
    'commonName' => 'example.com',
);
$csr = openssl_csr_new($dn, $privateKey);
$cert = openssl_csr_sign($csr, null, $privateKey, 365);
openssl_x509_export($cert, $certout);
echo $certout;

これらの例は、一般的なOpenSSL関数の使用方法を示しています。暗号化、署名、証明書の生成などの機能を実装するために、適切な関数を選択することができます。

bannerAds