当前位置: 首页 > 后端技术 > PHP

PHP实现RSA加解密和签名验证功能

时间:2023-03-30 02:50:24 PHP

1:生成RSA私钥和公钥1:生成RSA私钥$resource=openssl_pkey_new();openssl_pkey_export($resource,$privateKey);回声($私钥);2:生成RSA公钥$resource=openssl_pkey_new();$detail=openssl_pkey_get_details($resource);$publicKey=$detail['key'];echo($publicKey);注意:如果在生成私钥和公钥时出现如下提示:需要将openssl.cnf文件的地址复制到系统环境变量中,添加变量名OPENSSL_CONF,变量值为openssl.cnf的地址openssl.cnf文件2:RSA实现私钥加密和公钥解密1:RSA私钥加密$key='123';//要加密的字符串$pkey=openssl_pkey_get_private($privateKey);//$privateKey为私钥字符串openssl_private_encrypt($key,$encryptedData,$pkey);$encryptedData=base64_encode($encryptedData);回声($加密数据);2:RSA公钥解密$pkey=openssl_pkey_get_public($publicKey);//$publicKey为公钥字符串openssl_public_decrypt(base64_decode($encryptedData),$data,$pkey);//$encryptedData为私钥加密字符串echo($数据);三:RSA实现签名和验证1:私钥签名$key='123';//待签名的字符串$pkey=openssl_pkey_get_private($privateKey);//$privateKey为私钥字符串openssl_sign($key,$签名,$privateKey);openssl_free_key($pkey);$signature=base64_encode($signature);回声($signature);2:公钥签名验证$pkey=openssl_pkey_get_public($publicKey);//公钥字符串$verify=openssl_verify($key,base64_decode($signature),$publicKey);//$key需要签名字符串//$signature是签名字符串openssl_free_key($pkey);回声($验证);根据以上,我们可以实现RSA的加解密,利用RSA的私钥和公钥实现签名和验证功能!