$data = [
'agentId' => $agentid,
'date' => $time,
]; //需要加密的数据,有些是需要数组,有些是拼接,看实际情况
$enData = json_encode($data); //有些情况不需要转json
//$agent_key 密钥生成后的中间部分,下面有拼接头部和尾部,注意下面的$file不要改变格式
$file = '-----BEGIN RSA PRIVATE KEY-----
' . $agent_key . '
-----END RSA PRIVATE KEY-----
';
$private_key = openssl_pkey_get_private($file);
if (!$private_key) {
return '密钥不正确';
}
openssl_sign($enData, $signature, $private_key, 'sha256');
openssl_free_key($private_key); //释放密钥资源
$sign = base64_encode($signature); //加密的签名
$url = 'http://****.com/down' . $agentid . '/' . $time . '?sign_data=';
$url .= urlencode($sign); //签名如果是在url里则需要 签名url化
//然后根据情况事下载还是请求
//加密数据解密 $public_key 为公钥,这里就不赋值了,$decrypted为解密数据,直接返回$decrypted
$data = base64_decode($sign_data);
openssl_public_decrypt($data,$decrypted,$public_key);
//公钥加密私钥解密与上面类似
PHP RSA 私钥加密签名与公钥解密 (SHA256with RSA)
最新推荐文章于 2023-09-27 11:50:51 发布