写一个 php ras 加解密 示例代码
以下是一个 PHP 的 RSA 加解密示例代码:
// RSA 加密
function rsa_encrypt($data, $public_key)
{
$crypto = '';
$key = openssl_pkey_get_public($public_key);
openssl_public_encrypt($data, $crypto, $key);
return base64_encode($crypto);
}
// RSA 解密
function rsa_decrypt($data, $private_key)
{
$crypto = '';
$key = openssl_pkey_get_private($private_key);
openssl_private_decrypt(base64_decode($data), $crypto, $key);
return $crypto;
}
// 生成 RSA 密钥对
function rsa_gen_key()
{
$config = array(
"digest_alg" => "sha512",
"private_key_bits" => 4096,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
);
// 生成密钥对
$res = openssl_pkey_new($config);
// 获取私钥
openssl_pkey_export($res, $private_key);
// 获取公钥
$public_key = openssl_pkey_get_details($res);
$public_key = $public_key["key"];
// 返回密钥对
return array("private_key" => $private_key, "public_key" => $public_key);
}
// 使用示例
$key_pair = rsa_gen_key();
$private_key = $key_pair['private_key'];
$public_key = $key_pair['public_key'];
$data = "Hello World!";
// 加密
$crypto = rsa_encrypt($data, $public_key);
echo "加密结果:".$crypto."\n";
// 解密
$decrypto = rsa_decrypt($crypto, $private_key);
echo "解密结果:".$decrypto."\n";
注意:在实际使用时,需要妥善保管好私钥,不要泄露给他人,否则就失去了安全保障。
原文地址: https://www.cveoy.top/t/topic/B9Z 著作权归作者所有。请勿转载和采集!