hi,欢迎访问本站!
当前位置: 首页编程开发正文

PHP如何实现RSA加密解密?

墨初 编程开发 636阅读

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加密中的生成公钥和私钥的方法以及他们的加密与解密的过程。

声明:无特别说明,转载请标明本文来源!
相关推荐