postman使用RSA进行加密

文章介绍了如何在接口测试或性能测试中利用RSA加密,特别是通过Postman进行加密操作。首先需要安装git和node,下载forge.js源码,然后在Postman的Pre-request-Script中编写加密脚本,利用全局变量存储公钥和加密后的数据。
摘要由CSDN通过智能技术生成


前言

在接口测试或者性能测试中,经常会遇到要对数据进行加密的情况。本文主要介绍的是利用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行公钥是从全局变量中获得的,要实现填写好它的值,方便进行引用。也可以直接写到代码中,但是太长了,所有这里直接设置到全局变量中。
12行

2、第16行原始密码是从环境变量中获取的,可以根据需要填写需要加密的密码串。
加密

总结

以上就是今天要讲的内容,本文仅仅简单介绍了在postman中怎么使用RSA进行加密。

Postman可以通过使用前置脚本来实现RSA加密。在前置脚本中,你可以使用JavaScript的RSAKey库或者pycryptodome库来进行RSA加密操作。 如果你选择使用JavaScript的RSAKey库,你可以按照以下步骤进行操作: 1. 在Pre-request-Script页签中,引入RSAKey库。你可以使用以下代码来获取RSAKey库: ``` 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")); } ``` 2. 获取公钥,并创建RSA对象: ``` var rsa_public_key = pm.globals.get("RSA"); var publicKey = forge.pki.publicKeyFromPem(rsa_public_key); ``` 3. 使用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); ``` 如果你选择使用pycryptodome库来进行RSA加密,你可以按照以下Python代码进行操作: ```python from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_v1_5 # 定义待加密的数据 data = "hello, world!" # 读取公钥文件,并创建RSA对象 with open('public.pem', 'rb') as f: key = RSA.import_key(f.read()) rsa = PKCS1_v1_5.new(key) # 对数据进行RSA加密 encrypted_data = rsa.encrypt(data.encode('utf-8')) # 输出加密后的数据 print(encrypted_data.hex()) ``` 以上是使用Postman实现RSA加密的方法,你可以根据自己的需求选择适合的方法进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值