Postman RSA+Bate64验签

在之前写的日志《https://mp.csdn.net/mp_blog/creation/editor/113105977》中写了RSA签名,忘记写了验签,现在补上该部分。

    结合上述文档,获取到服务端返回的数据后,需要使用自己渠道的私钥获取到AES密码key,然后使用key解密出返回的源数据和sign,根据源数据使用服务端的公钥进行验签。

    引入forge.js

因为postman自带的加密函数是cryptoJS,不能满足数字RSA-SHA1签名,即java里的SHA1WithRSA因此需要接入第三方库,这里找到forge.jsforgeGitHub地址https://github.com/digitalbazaar/forge

    具体使用可参考上述文章。

对源数据进行RSA验签

具体的报文拼接就不再这里详细说明,pub_key为服务端公钥,XXXdata

为源数据。

//----------------------使用服务端公钥进行验签---------------//

function signpublic(pub_key,XXXdata){

    //注意此处上下的BEGIN PRIVATE KEY不要删除,框架自带的

    const prienc_key = '-----BEGIN PUBLIC KEY-----\n'

        + pub_key

        + '\n-----END PUBLIC KEY-----';

    var privateKey = forge.pki.publicKeyFromPem(prienc_key);

    const md = forge.md.sha1.create();

    md.update(XXXdata,"utf8");

    let erg = forge.util.decode64(datasign);

    var decrypttext = privateKey.verify(md.digest().getBytes(), erg);

    return decrypttext;

};

验签之前需要对sign进行解码,因为在签名是做了base64的转码,验签函数privateKey.verify()在手册中可以看到,具体使用可以参考手册https://gitee.com/fork_github/forge#rsa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值