前言
在接口测试或者性能测试中,经常会遇到要对数据进行加密的情况。本文主要介绍的是利用RSA加密的情况。其中引用的加密代码来自互联网,不知是哪位大牛分享的,在此表示感谢!
一、使用步骤
本文采用的方案是使用第三方模块forge.js来实现加密。
1.安装git和node
git作用:下载forge.js的源码
node作用:打包安装forge.js
PS:node请添加到环境变量
2.下载源码并安装
git clone https://github.com/digitalbazaar/forge.git
cd E:\forge
npm install
通过如上命令,可以将源码下载到本地,比如下载E:\forge
并安装。
3.创建全局变量
4.编写脚本
在需要加密的登录接口的Pre-request-Script页签中,编写如下代码。
if (!pm.globals.has("forgeJS")) {
pm.sendRequest("https://raw.githubusercontent.com/loveiset/RSAForPostman/master/forge.js", function (err, res) {
if (err) {
console.log(err);
} else {
pm.globals.set("forgeJS", res.text());
}
})
} else {
eval(postman.getGlobalVariable("forgeJS"));
// 公钥
var rsa_public_key = pm.globals.get("RSA");
var publicKey = forge.pki.publicKeyFromPem(rsa_public_key);
//rsa加密得到签名
var encryptedText = forge.util.encode64(publicKey.encrypt(pm.environment.get("raw_sword"), 'RSAES-PKCS1-V1_5', {
md: forge.md.sha1.create(),
mgf1: {
md: forge.md.sha1.create()
}
}));
//将加密得到的签名放到环境变量中
pm.environment.set("sword",encryptedText);
}
代码解析:
1、第12行公钥是从全局变量中获得的,要实现填写好它的值,方便进行引用。也可以直接写到代码中,但是太长了,所有这里直接设置到全局变量中。
2、第16行原始密码是从环境变量中获取的,可以根据需要填写需要加密的密码串。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了在postman中怎么使用RSA进行加密。