加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP下SSL加密解密、验证、签名方法(超简单)

发布时间:2020-05-25 07:50:13 所属栏目:PHP 来源:互联网
导读:PHP下SSL加密解密、验证、签名方法(超简单)

下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。

脚本之家小编现在分享给大家,也给大家做个参考。

PHP下SSL加密解密、验证、签名方法。

超级简单。依赖于OpenSSL扩展
function sign($data) {
    //读取私钥文件
    $priKey = file_get_contents('key/rsa_private_key.pem');

    //转换为openssl密钥,必须是没有经过pkcs8转换的私钥
    $res = openssl_get_privatekey($priKey);

    //调用openssl内置签名方法,生成签名$sign
    openssl_sign($data,$sign,$res);

    //释放资源
    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内置方法验签,返回bool值
    $result = (bool)openssl_verify($data,$res);
	
    //释放资源
    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;
}

以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读