「PHPでの公開鍵暗号」の版間の差分
提供: セキュリティ
(ページの作成:「PHP OpenSSL を用いて、データを公開鍵暗号で暗号化し、復号します。 __TOC__ == 概要 == ここでは、以下の手順を行います。 # 鍵...」) |
(相違点なし)
|
2014年8月13日 (水) 00:41時点における版
PHP OpenSSL を用いて、データを公開鍵暗号で暗号化し、復号します。
概要
ここでは、以下の手順を行います。
- 鍵ペアの作成
- データの暗号化
- データの復号
鍵ペアは、動的に作成する必要はありません。事前にOpenSSLコマンドで鍵ペアを作成したものを用いても構いません。
PHP OpenSSLでの簡単な公開鍵暗号
ソースコード
<?php /** * Short description for keypair.php * * @package keypair * @author kaoru <kaoru@bsd> * @version 0.1 * @copyright (C) 2014 kaoru <kaoru@bsd> */ $config = array ( "digst_alg" => "sha512", "private_key_bits" => 4096, "private_key_type" => OPENSSL_KEYTYPE_RSA, ); // Create the keypair $res=openssl_pkey_new($config); // Get private key openssl_pkey_export($res, $privatekey); // Get public key $publickey_detail=openssl_pkey_get_details($res); $publickey=$publickey_detail["key"]; // 暗号化するテキスト $text = "Hoge"; // 暗号化 openssl_public_encrypt($text, $cipher_text, $publickey); // 表示用に base64 エンコード echo base64_encode("$cipher_text"), PHP_EOL; // 復号 openssl_private_decrypt($cipher_text, $plain_text, $privatekey); // 復号された文字列 echo $plain_text, PHP_EOL; openssl_pkey_free ($res); ?>
使い方
$ php openssl_crypt.php PoneCpMI8N9Ou7Xnn++ZuwWq5LKtEzC8pyDbYIcWGsDdJwZTVWG7zL5sbWB+aOY5mvjZbQ5Ey9jjbCZk4wZEtCzcVlS0A8dW82sLo749RLGCyHz0oXrE9ddIgwKILTH5F2WVJeCb8hLw5y+6QqbtKGjl0EyU5ZcTcc5bAM3BwBViUMSmzhZsTa+iAnVIJ0RSAq9lyfTlXQsLIOfm1qbSjblXljJLEZvxQIMckkaAEgdcoH6rJEKf1yPd9Yht4wnCxIwxo8I3ryYW6xSPjGXU9XNmZvVf0Xvyv0jbUiXeWB+fsc8tNJHiaj3IkA5WzLcX9SxYhF4pDx7NHsHu5sCBxy4CDK7yeDPUTCZ/OsxUXwc3mY3UVIkkIj53IwEKVG3G0GcMRQAu6Bd5duBxaQ9bi51aeyGJjM87ZH2NbhF2XIVjSjkwlajIeogO5V1OvNZkh5LI+piCzO5cb1A5hJBpq3qLvZYPpDrPvZxw5QwIwZPV+xOkJSWN1FSiV+wWcmGeol4vx9fQTJsTYPEQf/+Bj31J5EthEkB3jUWSAiWD1sbi2FQXFo76DS733O24n8vV9tva7uInV9OSbkHNXHsBM6ee0lfrK938Yh2jKjh8sMLqGJmyPWtiZtM2BMsxYEtCx/W415Vz5PUqfxD+62EjdtVIS1YK2/BBv76aTo65BNA= Hoge
関連項目
- PHPで鍵ペアを作成する方法
- PHPでの公開鍵暗号