php双向验证SSL,PHP下SSL加密解密、验证、签名方法(很简单)

38月/16

RSA超级简单,依赖于Open

function sign($data) {

//读取私钥文件(

//转换为openssl密钥,必须是没有经过pkcs8转换的私钥(不要使用这个私钥rsa_private_key_pkcs8.pem)

$res = openssl_get_privatekey($priKey);

//调用openssl内置

//释放资源

openssl_free_key($res);

return $sign;

}

function verify($data, $sign) {

//读取支付宝公钥文件(一定是阿里后台生成提供的公钥)

$pubKey = file_get_contents('key/alipay_public_key.pem');

//转换为openssl格式密钥

$res = openssl_get_publickey($pubKey);

//调用openssl内置

//释放资源

openssl_free_key($res);

return $result;

解密

function decrypt($content) {

//读取商户私钥(商户自己生成的私钥)

$priKey = file_get_contents('key/rsa_private_key.pem');

//转换为openssl密钥,必须是没有经过pkcs8转换的私钥

$res = openssl_get_privatekey($priKey);

//声明明文字符串变量

$result = '';

//循环按照128位解密

for($i = 0; $i < strlen($content)/128; $i++ ) {

$data = substr($content, $i * 128, 128);

//拆分开长度为128的字符串片段通过私钥进行解密,返回$decrypt解析后的明文

openssl_private_decrypt($data, $decrypt, $res);

//明文片段拼接

$result .= $decrypt;

}

//释放资源

openssl_free_key($res);

//返回明文

return $result;

}

AES密钥是什么

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是目前对称密钥加密中比较通用的一种加密方式。

AES密钥有什么用

支付宝开放平台所有OpenAPI均支持对接口的请求内容和响应内容进行AES加密,部分OpenAPI(芝麻信用等)强制要求AES加密。加密后,在网络上传输的接口报文内容将会由明文内容变为密文内容,可以大大提升接口内容传输的安全性。

AES密钥与RSA密钥的关系

4d5877ebdc9cbb9a9a26da77b33ce267.png

AES密钥是对接口请求和响应内容进行加密,密文无法被第三方识别,从而防止接口传输数据泄露。

RSA密钥是对接口请求和响应内容进行

开发者可对请求参数先做AES加密,然后对密文进行RSA

邵珠庆推荐文章

博文加载中...

发布在 邵珠庆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值