经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 编程经验 » 查看文章
Postman报文进行解密之RSA私钥解密
来源:cnblogs  作者:软件测试开发一凡  时间:2021/3/1 8:45:05  对本文有异议

接口返回的数据也是加密的,需要对数据解密才能看到返回的数据是否正确,就需要用RSA解密。

返回数据的解析可以在postman的Tests进行后置处理,获取加密后的返回数据:

  1. var data = JSON.parse(responseBody);
  2. var enc = data.data;
  3. var encdata = enc.encdata;
  4. var enckey = enc.enckey;

下面就对密文进行解密:

 

 

解密函数priencrypt(),需要把私钥和密文传递给它;

forge.pki.privateKeyFromPem(prienc_key)转换pem格式的公钥;

forge.util.decode64(密文)转码;

privateKey.decrypt()解密函数,把密文按照'RSAES-PKCS1-V1_5'填充方式解密成明文。

最后就得到了明文key,然后再使用key对返回的参数密文进行AES解密。

//--------RSA使用渠道私钥对密文(AES密码)进行解密-------------//

function priencrypt(pri_key,encdataText){

console.info('priencrypt_key:'+pri_key);

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

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

+ pri_key

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

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

var decryptedText = privateKey.decrypt(forge.util.decode64(encdataText), 'RSAES-PKCS1-V1_5', {

md: forge.md.sha1.create(),

mgf1: {

md: forge.md.sha1.create()

}

});

console.info('pulencryptedText: '+ decryptedText);

return decryptedText;

}

// 第一次运行时从网络加载forgeJS,会导致请求失败

if(!pm.globals.has('forgeJS')){

console.log('request forge.js from ' + forge_url);

pm.sendRequest(forge_url, function (err, res) {

if (err) {

console.error(err);

} else {

console.info("request forgs.js: Succeed, please try again");

pm.globals.set('forgeJS', res.text());

}

}

);

}

eval(pm.globals.get('forgeJS'));

keyText = priencrypt(priencrypt_key,enckey);

原文链接:http://www.cnblogs.com/software-test-Python/p/14446675.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号