RSA 加解密
优质
小牛编辑
142浏览
2023-12-01
我们封装了一个RSA
加解密的工具放在 extends 中。首先看看它的文件结构
rsa
|-- RSACrypt 加解密主程序
|-- RSACryptBigData 大数据加解密
|-- SignUtil 签名类
|-- rsa_public_key.pem 公钥
|-- rsa_private_key.pem 私钥
RSACrypt API
RSACrypt::encryptByPrivateKey($data) //私钥加密 RSACrypt::decryptByPublicKey($data) //公钥解密
RSACrypt::encryptByPublicKey($data) //公钥加密 RSACrypt::decryptByPrivateKey($data) //私钥解密
注意: 当需要加密的内容长度超过117个字节的时候你就需要用 RSACryptBigData
去替换 RSACrypt
了。
签名
在api通信的时候,为了安全认证,经常会用到签名,所以这里我们提供了一个签名工具类 SignUtil
, 它只有一个api
SignUtil::sign($url, $params);
参数名称 | 参数类型 | 参数说明 |
---|---|---|
$url | string | 签名的url |
$params | string|array | 签名的参数 |
栗子
$url = "http://www.r9it.com";
$client = new HttpClient();
$params = array(
'username' => 'xiaoming',
'mobile' => '13848575937'
);
$params['__timer'] = time();
$params['__secret'] = md5($url);
$sign = SignUtil::sign($url, $params);
$rsa = new RSACrypt();
$params['__sign'] = $rsa->encryptByPublicKey($sign);
$result = $client->post($url, $params);