<返回更多

Postman RSA+Bate64验签

2021-08-04    说说软件测试那些事儿
加入收藏

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

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

引入forge.js

因为postman自带的加密函数是cryptoJS,不能满足数字RSA-SHA1签名,即JAVA里的SHA1WithRSA,因此需要接入第三方库,这里找到forge.js。forge的GitHub地https://github.com/digitalbazaar/forge。具体使用可参考上述文章。

RSA验签

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

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

function signpublic(pub_key,XXXdata){

//注意此处上下的BEGIN PUBLIC 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。

Postman RSA+Bate64验签
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>