【php】php笔记-RSA加密解密(转) 发表于 2019-10-09 | 更新于 2020-04-10 | 分类于 php | 评论数: | 阅读次数: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667<?phpclass Rsa{ public $privateKey = ''; public $publicKey = ''; public function __construct() { $resource = openssl_pkey_new(); openssl_pkey_export($resource, $this->privateKey); $detail = openssl_pkey_get_details($resource); $this->publicKey = $detail['key']; } public function publicEncrypt($data, $publicKey) { openssl_public_encrypt($data, $encrypted, $publicKey); return $encrypted; } public function publicDecrypt($data, $publicKey) { openssl_public_decrypt($data, $decrypted, $publicKey); return $decrypted; } public function privateEncrypt($data, $privateKey) { openssl_private_encrypt($data, $encrypted, $privateKey); return $encrypted; } public function privateDecrypt($data, $privateKey) { openssl_private_decrypt($data, $decrypted, $privateKey); return $decrypted; }}$rsa = new Rsa();echo "公钥:\n", $rsa->publicKey, "\n";echo "私钥:\n", $rsa->privateKey, "\n";// 使用公钥加密$str = $rsa->publicEncrypt('hello', $rsa->publicKey);// 这里使用base64是为了不出现乱码,默认加密出来的值有乱码$str = base64_encode($str);echo "公钥加密(base64处理过):\n", $str, "\n";$str = base64_decode($str);$pubstr = $rsa->publicDecrypt($str, $rsa->publicKey);echo "公钥解密:\n", $pubstr, "\n";$privstr = $rsa->privateDecrypt($str, $rsa->privateKey);echo "私钥解密:\n", $privstr, "\n";// 使用私钥加密$str = $rsa->privateEncrypt('world', $rsa->privateKey);// 这里使用base64是为了不出现乱码,默认加密出来的值有乱码$str = base64_encode($str);echo "私钥加密(base64处理过):\n", $str, "\n";$str = base64_decode($str);$pubstr = $rsa->publicDecrypt($str, $rsa->publicKey);echo "公钥解密:\n", $pubstr, "\n";$privstr = $rsa->privateDecrypt($str, $rsa->privateKey);echo "私钥解密:\n", $privstr, "\n";} 源码来源 坚持原创技术分享,您的支持将鼓励我继续创作! 打赏 微信支付 支付宝