小程序rsa 非对称加密


var KJUR = require("./jsrsasign-latest-all-copy.js");

var { formatTime
} = require('./util.js')

var privateKey_pkcs1 = '-----BEGIN PRIVATE KEY-----\n' +
  'MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAIrRLDgUd2KN4+4Cp\n' +
  'P+B2/iYGMG8Rroo1kQSlxHvi0kXI1bR12jo2xEgIsEj4oq5MFJNWoVX6c6q35jjNg\n' +
  'kcNdRTIuUbXXokrbhiT98usV7ofzB9sdcG5k+G8d4pYEy0Y9bv6uixfkIWO0Gcyi+\n' +
  '4nF5zsDaKa7nRzWLxrufaqtJpAgMBAAECgYArN3Gvx9dfDFOAfrxFe3UzEI7siaPv\n' +
  'QtVp/eugPtY7HAP5fHy2gX/p9fo77OMTUxITHVfoGXWFzLatz1a8QVcUXDM0I/9N5\n' +
  'nGBCmpviQC+w/j/E08hpus8BAh9lRb8vMoMgLgx3Gb1Tc9rmIOiXtiZIVo28F28ep\n' +
  'onBPPgwdlDvQJBAM3y8eODfut5gTtLvrN+6SM4xT6Zbbn5l0mqiU9HO+28zwQkVRp\n' +
  '5gxzc+9MkDX2zzzR7mnD7RrWp+Cq8VB27+u8CQQCsjaKzT2L0QI5H7xX8fgJtj45J\n' +
  'cbXGXsY54nHHSFU5P50MDQJS48AoDBVhqupm1iP+iHV4zUaM95g1iiaOUegnAkBj+\n' +
  'Zmevkiweo1XgY+ThvoZ1Qc7OjPf4d+lLRn22DepUsyT0CdX8MDLFCNS/d9mtBDUA2\n' +
  'SXkANlUJtd84pJ3OUVAkBCIYIykIFPNRKSlRnrC+woSzVwBmlxHk+ATb3nb1xiNXQ\n' +
  'd8zppxCmX75GePd/aC8X9vhSveJTKX/XwxwKh1thPAkBlvz74WAzgI0LwSiiIPM00\n' +
  'm7xfdOjpUTRIZrXx1SCrBiZFXGkFIKBaGAAnoqQ8PcZOCfE5zyeUxGklyc27O61R\n' +
  '-----END PRIVATE KEY-----'
var publicKey_pkcs1 = '-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCk7WKdggwBOtteLL5sPom8RYCjuw0hy6R1jH39tCaep1Dns02bi4CYHk2dSR / t0ABgF5pHYeMxHa74Dp6Z6SjfAKMUu53BbTR615ehK + 03BjtzJzviTF1/ NtLmGaR3aawrDp7oQgq33dfIYbWLuAMkHNiWaoXaGyHh3a8jS2vxfQIDAQAB-----END PUBLIC KEY-----'


var baseUrl = 'https://www.jdd966.com/CoBrandedCard'
var timestamp = formatTime()
var version = '3.0.0'

const versionAdd = {
  version,
  timestamp
}
function toSha1 (params) {
  console.log('params', params)
  var str = '';//拼接参数
  const arr = Object.keys(params.data)
  for (var i in arr) {
    str += arr[i] + '=' + data[arr[i]] + '&';
  }
  str = str.substr(0, str.length - 1);

  var data = params.url + '?' + str;
  // 方式1: 先建立 key 对象, 构建 signature 实例, 传入 key 初始化 -> 签名
  // 创建 Signature 对象
  let signature = new KJUR.KJUR.crypto.Signature({ alg: "SHA1withRSA" });
  // 传入key实例, 初始化signature实例
  signature.init(privateKey_pkcs1);
  // 传入待签明文
  signature.updateString(data);
  // 签名, 得到16进制字符结果
  let a = signature.sign();
  let sign = KJUR.hextob64(a);

  console.log("a", sign);
  return {
    sign: sign
  }
}




export default {
  request (json) {
    json.data = Object.assign(json.data, versionAdd)
    console.log("xcq", json)
    wx.request({
      url: json.url,
      header: {
        'content-type': 'application/json'
      },
      responseType: json.type,
      data: json.data,
      dataType: json.dataType,
      success (res) {
        fnSuc && fnSuc(ret);
        repeat = true;
      },
      error: function (err) {
        errSuc && errSuc(err);
        repeat = true;
      }
    })
  },
  axiosPost (json) {
    console.log('json', json)
    json.data = toSha1(json)
    return new Promise((resolve, reject) => {
      wx.request({
        url: baseUrl + json.url,
        data: json.data,
        method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
        header: {
          'content-type': 'application/x-www-form-urlencoded'
        },// 设置请求的 header
        success: function (res) {
          resolve(res)
        },
        fail: function (err) {
          reject(err)
        },
        complete: function () {
          // complete
        }
      })
    })
  },
  axiosGet (json) {
    return new Promise((resolve, reject) => {
      json.data = toSha1(json)
      wx.request({
        url: baseUrl + json.url,
        data: json.data,
        method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
        header: {
          'Content-Type': 'application/json'
        },// 设置请求的 header
        success: function (res) {
          resolve(res)
        },
        fail: function (err) {
          reject(err)
        },
        complete: function () {
          // complete
        }
      })
    })
  }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值