PHP如何实现RSA加密解密?
墨初 编程开发 1078阅读
RSA加密解密是一种很常用的加密算法,可以用于保护数据的隐私性和安全性,并且破解难度也非常的高。在php中就提供了RSA加密解密的相关函数,下面73so博客就来详细的说一说。
php中的RSA加密解密
1、php生成RSA的公钥和私钥
例:
$config = array( "private_key_bits" => 2048, "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"]; echo '公钥为:'.$public_key; echo '私钥为:'.$private_key;
除了使用上面的php代码生成RSA的公钥与私钥外,还可以使用一些相关的工具或在linux系统中使用相关的命令来生成。
2、php RSA加密方法
一般我们使用RSA的公钥来进行加密。
# https://www.73so.com $data = '我是要加密的内容'; $public_key = '-----BEGIN PUBLIC KEY----- 这里是上面生成的公钥 -----END PUBLIC KEY-----'; #开启加密 openssl_public_encrypt($data, $encrypted, $public_key); // $encrypted 为加密后赋值的变量 echo $encrypted; echo base64_encode($encrypted); //由于加密后的数据可读性比较差,这里就base了一下
3、php RAS解密方法
下面使用私钥进行解密,注意加密的公钥与解密私钥必须匹配才能进行解密。
# https://www.73so.com $encrypted = '需要解密的内容'; $res = '-----BEGIN RSA PRIVATE KEY----- 这是私钥的内容 -----END RSA PRIVATE KEY----- '; openssl_private_decrypt($encrypted, $decrypted, $res); echo $decrypted;
以上就是PHP中关RSA加密中的生成公钥和私钥的方法以及他们的加密与解密的过程。