前端 rsa SHA256withRSA 签名 私钥是base64字符串

本文介绍了如何使用RSA算法进行数据加密和签名。首先,通过BEGINPRIVATEKEY和ENDPRIVATEKEY包裹的Base64编码私钥进行解析。然后,利用jsrsasign库创建RSAKey实例,并设置签名算法为SHA256withRSA。接着,初始化签名、更新待签名字符串并生成签名。最后,将签名进行URI编码,作为请求参数的一部分。
摘要由CSDN通过智能技术生成

转自: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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值