wemall app商城系統Android之支付寶接口RSA函數

wemall-mobile是基於WeMall的Android app商城,只須要在原商城目錄下上傳接口文件便可完成服務端的配置,客戶端可定製修改。本文分享支付寶接口RSA函數,RSA簽名、驗籤、解密等,供技術員參考學習。微信

如下代碼只是爲了方便商戶測試而提供的樣例代碼,商戶能夠根據本身網站的須要,按照技術文檔編寫,並不是必定要使用該代碼,該代碼僅供學習和研究支付寶接口使用,只是提供一個參考。app

wemall官網地址:http://www.wemallshop.com

/**koa

  • RSA簽名函數

  • @param $data 待簽名數據學習

  • @param $private_key_path 商戶私鑰文件路徑測試

  • return 簽名結果
    */網站

function rsaSign($data, $private_key_path) {
    $priKey = file_get_contents($private_key_path);
    $res = openssl_get_privatekey($priKey);
    openssl_sign($data, $sign, $res);
    openssl_free_key($res);
    //base64編碼
    $sign = base64_encode($sign);
    return $sign;
}

/**
 * RSA驗籤
 * @param $data 待簽名數據
 * @param $ali_public_key_path 支付寶的公鑰文件路徑
 * @param $sign 要校對的的簽名結果
 * return 驗證結果
 */
function rsaVerify($data, $ali_public_key_path, $sign)  {
    $pubKey = file_get_contents($ali_public_key_path);
    $res = openssl_get_publickey($pubKey);
    $result = (bool)openssl_verify($data, base64_decode($sign), $res);
    openssl_free_key($res);    
    return $result;
}

/**
 * RSA解密
 * @param $content 須要解密的內容,密文
 * @param $private_key_path 商戶私鑰文件路徑
 * return 解密後內容,明文
 */
function rsaDecrypt($content, $private_key_path) {
    $priKey = file_get_contents($private_key_path);
    $res = openssl_get_privatekey($priKey);
    //用base64將內容還原成二進制
    $content = base64_decode($content);
    //把須要解密的內容,按128位拆開解密
    $result  = '';
    for($i = 0; $i < strlen($content)/128; $i++  ) {
        $data = substr($content, $i * 128, 128);
        openssl_private_decrypt($data, $decrypt, $res);
        $result .= $decrypt;
    }
    openssl_free_key($res);
    return $result;
}

wemall官網地址:http://www.wemallshop.com
原文詳情地址:http://Git.oschina.NET/zzunet...
wemall doraemonAndroid app商城詳情地址:http://www.koahub.com/home/pr...
WeMall - 開源微商城 微信商城 商城源碼 分銷商城 b2b2c商城系統
wemall編碼

相關文章
相關標籤/搜索