PHP 加密解密:公私钥加解密
<?php
$config = array(
"private_key_bits" => 1024, //字节数 512 1024 2048 4096 等
"private_key_type" => OPENSSL_KEYTYPE_RSA, //加密类型
"config" => "/usr/local/etc/openssl/openssl.cnf"
);
// 生成公钥私钥资源
$res = openssl_pkey_new($config);
// 导出公私钥 $priKey
openssl_pkey_export($res, $priKey,null,$config);
$pubKey = openssl_pkey_get_details($res);
$pubKey = $pubKey["key"];
$fp = fopen('rsa_public_key.pem', "w");
fwrite($fp, $pubKey);
fclose($fp);
$fp = fopen('rsa_private_key.pem', "w");
fwrite($fp, $priKey);
fclose($fp);
//直接测试私钥 公钥
echo '-------------------公私钥加解密-START---------------------','<br>';
$data = '测试公私钥加解密成功!';
// 公钥加密
openssl_public_encrypt($data, $encrypted, $pubKey);
// 私钥解密
openssl_private_decrypt($encrypted, $decrypted, $priKey);
echo '公钥加密:',base64_encode($encrypted),'私钥解密:','<br>',$decrypted,'<br>';
echo '-------------------公私钥加解密-END---------------------','<br>';