?php
// openssl 擴展檢測
var_dump(extension_loaded('openssl'));
$prikey = openssl_pkey_get_private(file_get_contents('rsa_private_key.pem')); //私鑰
$pubkey = openssl_pkey_get_public(file_get_contents('rsa_public_key.pem')); //公鑰
// 明文數(shù)據
$data = 'test-string!';
/**
* 可能會出的問題:Don't know how to get public key from this private key
* 原因:PHP 的 openssl 擴展和 Apache 的不一致導致, 當然在命令行下運行程序則不會出現(xiàn)此問題
*/
// 公鑰加密
$encrypt_data = '';
openssl_public_encrypt($data, $encrypt_data, $pubkey);
$encrypt_data = base64_encode($encrypt_data);
echo $encrypt_data;
echo 'br/>';
// ------------------------------------------------------------
// 私鑰解密
$encrypt_data = base64_decode($encrypt_data);
openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
var_dump($decrypt_data);