Chinaunix首页 | 论坛 | 博客
  • 博客访问: 53251
  • 博文数量: 48
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-12 11:48
文章分类
文章存档

2016年(48)

我的朋友

分类: PHP

2016-12-06 11:05:24

       wemall-mobile是基于WeMall的 app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改。本文分享支付宝接口RSA函数,RSA签名、验签、解密等供技术员参考学习。

      以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码,该代码仅供学习和研究支付宝接口使用,只是提供一个参考。

      wemall官网地址:

点击(此处)折叠或打开

  1. <?php
  2. /**
  3.  * RSA签名
  4.  * @param $data 待签名数据
  5.  * @param $private_key_path 商户私钥文件路径
  6.  * return 签名结果
  7.  */
  8. function rsaSign($data, $private_key_path) {
  9.     $priKey = file_get_contents($private_key_path);
  10.     $res = openssl_get_privatekey($priKey);
  11.     openssl_sign($data, $sign, $res);
  12.     openssl_free_key($res);
  13.     //base64编码
  14.     $sign = base64_encode($sign);
  15.     return $sign;
  16. }

  17. /**
  18.  * RSA验签
  19.  * @param $data 待签名数据
  20.  * @param $ali_public_key_path 支付宝的公钥文件路径
  21.  * @param $sign 要校对的的签名结果
  22.  * return 验证结果
  23.  */
  24. function rsaVerify($data, $ali_public_key_path, $sign) {
  25.     $pubKey = file_get_contents($ali_public_key_path);
  26.     $res = openssl_get_publickey($pubKey);
  27.     $result = (bool)openssl_verify($data, base64_decode($sign), $res);
  28.     openssl_free_key($res);
  29.     return $result;
  30. }

  31. /**
  32.  * RSA解密
  33.  * @param $content 需要解密的内容,密文
  34.  * @param $private_key_path 商户私钥文件路径
  35.  * return 解密后内容,明文
  36.  */
  37. function rsaDecrypt($content, $private_key_path) {
  38.     $priKey = file_get_contents($private_key_path);
  39.     $res = openssl_get_privatekey($priKey);
  40.     //用base64将内容还原成二进制
  41.     $content = base64_decode($content);
  42.     //把需要解密的内容,按128位拆开解密
  43.     $result = '';
  44.     for($i = 0; $i < strlen($content)/128; $i++ ) {
  45.         $data = substr($content, $i * 128, 128);
  46.         openssl_private_decrypt($data, $decrypt, $res);
  47.         $result .= $decrypt;
  48.     }
  49.     openssl_free_key($res);
  50.     return $result;
  51. }
  52. ?>

wemall官网地址:

原文详情地址:

wemall doraemonAndroid app商城详情地址:

WeMall - 开源微商城 微信商城 商城源码 分销商城 b2b2c商城系统

wemall

阅读(798) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~