转自:https://www.cnblogs.com/web-chuanfa/p/11096951.html
var priK = -----BEGIN PRIVATE KEY----- MIIEuwIQa2gpWlSbIxfiD/M98idMfroR08e90uHjWkd7Kna4/BXiyiLxcnn
-----END PRIVATE KEY-----
// 后端提供的私钥是base64编码过后的,类型这种,但是很长
// BEGIN PRIVATE KEY和END PRIVATE KEY 是必须要有的
var paramsStr=''//存放给后端传的json串 因为最后是参数+签名 拼接在一起
1. 页面引入:<script src="../js/vendor/jsrsasign-all-min.js"></script>
2. var rsa = new RSAKey();
//创建rsa实例
3. rsa = KEYUTIL.getKey(k);
//因为后端提供的是pck#8的密钥对,所以这里使用 KEYUTIL.getKey来解析密钥
2. var sig = new KJUR.crypto.Signature({
"alg": "SHA256withRSA"
});
// 设定签名以 SHA256 为基准,其他还有sha1等,详见文档
3. sig.init(rsa) //初始化
4. sig.updateString(paramStr)// 传入带加密字符串
5. var sign = hextob64(sig.sign());
6. sign=encodeURIComponent(sign)// 对加密后内容进行URI编码(如果需要的话,我是没用着...)`
最后的入参大概是这样的:
{"merNo":"12823481625824","timestamp":"1614539","random":"0O1FTF9M705043","reqSource":"0","signMethod":"01"}B1C441AA96502B1B19A06D1406268EFF