2021-10-07

【加密与解密】

 

在一些数据传输的过程中,使用最广的安全加密方法都是用的rsa2,下面说说在php中RSA2的加密,解密以及接口签名和验签的方法。

 

RSA加密算法

 

RSA加密算法又称为非对称加密,是提利用两个密钥来进行加密和解密,这两个秘钥分别是公钥(public key)和私钥(private key),非对称加密适合于对安全性要求很高的场景,适合加密少量数据,比如支付数据、CA数字证书等。

 

常见的非对称加密算法分为 RSA RSA2

 

非对称加密的优点:需要两组不同的密钥,安全性高,并且两个密钥可以互相解密

非对称加密的缺点:速度慢,只适合对少量的数据进行加密

 

PHP RSA2 加密算法的方法

RSA2 所使用的公钥和私钥可以利用一些在线工具生成,也可以在liunx系统中通过命令生成。

示例:

//公钥
$publicKey = '-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmvDCCwuz2tmBbnBF1Vlm
Qrww3xyOpZmRjsRLuGpAcRuH7A5hDiS9TslxoVeF8yZHIFsxPEEFYvlE39FxrBd6
T/UjSsEoK5EJWy9YYbycWA13gATCw0joJHGKS2d/sAVcCewvVe4vOiwyLDMKalwV
4TEfBP4dYySvHPMmsCLGUVXx5ygJTn0eza0mchdnZsVDoO1qHGP1Fj/89eCVOtlM
E4mMJD+uCXFtk4r8fnIJYRm4D34WLa2bI/11B089FUcnVe83UziENHPUqi8UqibJ
HQGkq98ZnHWv4VoNKynixzanbEE8Cu+zmbXliabc5qAMB0N974uGCNj3oSa3XTyS
iQIDAQAB
-----END PUBLIC KEY-----';
//下面是要加密的数据
$data = [
    'uid' => '10',
    'name' => 'yuzhi',
    'host' => 'h2sheji.com',
];
$publicKey = openssl_pkey_get_public($publicKey); 
//加密后的数据进行base64加密
$rs = openssl_public_encrypt(json_encode($data), $encrypted, $publicKey) ? base64_encode($encrypted) : null; 
//输出加密后的字符串
echo $rs;

 

输出结果

TYyS0iKUn3OkVTAEO3OJkcQAfjALIVOnMsKIZEJpf16wilT+61r7/1obZmtRg8iIFb/Fqi+VWCkx44Z6t1ummj6hCu4SUBKvsgutbB+HFybycu8QSC8Z/Nc5kCLe0LWJJqHAXz33uPd6qPj/EGziRD2d6vUg9OuNZ3e6pFyUzXMU+H9bPaN+D3Bu9i8C4RakW7zKrlFyiuYO4El+oNw7HD+gVVDw2n0O7VY35Yb/03kLETAAUqIHwOWE7lCETwUlWJYPF6Gk2GNs1JFsbGPdhJcDC6rkF0OMOYpi1/R+y79HpEFNOzw0EjG4wBLTgvynn3yQgaXjejdfzNc9+ikSOA==

 

 

 

PHP RSA2 解密算法的方法

我们哪上面的加密的输出数据来解密

 

示例

输出结果

Array
(
    [uid] => 10
    [name] => yuzhi
    [host] => h2sheji.com
)


 

 

打赏

好文章,更需要你的鼓励

本文由 氢设计 创作,除注明转载/出处外,均为本站原创,转载前请务必署名

最后编辑时间为:2021-12-22 00:24:14

本文链接:https://www.h2sheji.com/show-192.html