Postman接口测试-登录接口的密码加密【RSA】
实现目的:登录接口的密码加密
前期准备:用开发询问相对应的RSA加密代码,找到加密函数及对什么字符串进行加密
找到相对应的公钥

实现过程:再postman之Pre-requests Script输入以下内容,会再发送请求前运行Pre-requests Script

分析实现过程:
第一部分------需要加密的内容(按照项目代码要求的写)
//明文密码
var PwdNum = "123456";
//获取当前时间
var timestamp = Math.round(new Date().getTime())
//拼接
var clearText = PwdNum + ',' + timestamp;
//console控制台输出
console.log(clearText)
第二部分------RSA加密(按照项目代码要求,看用什么加密算法,不同加密算法写法不同---暂时只学了RSA)
//公钥
var public_key ='-----BEGIN PUBLIC KEY-----\n'+
'问开发要公钥'+
'\n-----END PUBLIC KEY-----'
//postman自带的加密函数是cryptoJS,无法满足;因此需要引用第三方库forge.js
//调用forge.js服务的地址:https://raw.githubusercontent.com/loveiset/RSAForPostman/master/forge.js打不开时,就用https://lzq1357.gitee.io/various/forge_min.js
const forge_url = "https://lzq1357.gitee.io/various/forge_min.js"
//定义Rsa加密函数encryptRsa,其中public_key为公钥,clearText为所需要加密的内容
function encryptRsa(public_key,clearText){
console.info('clearText:' + clearText)
//公钥转化为pem格式
var publicKey = forge.pki.publicKeyFromPem(public_key)
//创建缓冲区,所需要加密内容设置编码格式
var buffer = forge.util.createBuffer(clearText, 'utf8')
//转化为字节
var bytes = buffer.getBytes()
//publicKey.encrypt(bytes,'RSAES-PKCS1-V1_5')加密函数,把明文使用'RSAES-PKCS1-V1_5'加密成密文
//forge.util.encode64()把加密后的密文按encode64进行编码输出
var encryptedText = forge.util.encode64(publicKey.encrypt(bytes,'RSAES-PKCS1-V1_5',{
md:forge.md.sha256.create(),
mgf1:{
md:forge.md.sha1.create()
}
}));
//控制台输出加密内容
console.info('encryptedText:' + encryptedText)
return encryptedText;
};
//第一次运行时从网络加载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 forge.js: Succeed,please try again")
pm.globals.set('forgeJS',res.text())
}
});
return;
};
//设置全局变量forgeJS
eval(pm.globals.get('forgeJS'))
//定义加密,调用Rsa加密函数encryptRsa
var encryptedText = encryptRsa(public_key,clearText)
//控制台输出加密
console.log(encryptedText)
第三部分------设置环境变量password
第三部分------设置环境变量password
pm.environment.set("password",encryptedText)
第四部分------请求成功,环境设置里有生成的环境变量[加密密码+cookie信息],全局变量[forgeJS]
第四部分------请求成功,环境设置里有生成的环境变量[加密密码+cookie信息],全局变量[forgeJS]


浙公网安备 33010602011771号