postman中使用Pre-request Script

一、get方法

get请求时 ,有多个params,并且有一个参数为sign,这个参数是有其他params拼接之后md5加密得到的,如何通过js语句获取params参数并生成sign。

const CryptoJS = require('crypto-js');  // 引入 CryptoJS 库进行 MD5 加密
// 获取请求的 URL 参数
const params = pm.request.url.query.members;
// 创建一个空对象用于存储参数
let paramsObj = {};// 遍历参数并存入对象,即使值为空也处理
params.forEach(param => {if (param.key) { // 只需确保键存在paramsObj[param.key] = param.value ?? ""; // 如果值为 undefined 或 null,使用空字符串替代}
});// 将参数对象的键按字典顺序排序并拼接字符串
let sortedKeys = Object.keys(paramsObj).sort();
let paramString = sortedKeys.map(key => `${key}=${paramsObj[key]}`).join('&');console.log('Param String:', paramString);  // 打印拼接后的字符串,用于调试,可以在postman的console中进行查看// 对拼接后的字符串进行 MD5 加密
let sign = CryptoJS.MD5(paramString).toString();console.log('MD5 Sign:', sign);  // 打印 MD5 加密后的 sign 值,用于调试// 将生成的 sign 参数添加到请求参数中
pm.request.url.query.add({ key: 'sign', value: sign });

二、post方法

let param1 = pm.request.body.urlencoded.get('param1'); // 获取方式和get方法不同
// 多个参数一次获取即可
postman.setGlobalVariable("sign", CryptoJS.MD5(s).toString());

三、加密

var public_key ='-----BEGIN PUBLIC KEY-----\n'+'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'+'\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
let passwd = "12312312";   ## 自己设置的明文密码,
const forge_url = "https://raw.githubusercontent.com/loveiset/RSAForPostman/master/forge.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, passwd)
//控制台输出加密
console.log(encryptedText)pm.environment.set("password",encryptedText)
postman.setGlobalVariable("password", encryptedText);

参考:Postman使用RSA加密字段及保存认证token_postman rsa加密-CSDN博客

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149284.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习(5):逻辑斯蒂回归Logistic

文章目录 一、逻辑斯蒂回归(Logistic Regression)二、KL 散度(相对熵)三、交叉熵(Cross-Entropy)四、关系五、总结 一、逻辑斯蒂回归(Logistic Regression) 概述 逻辑斯蒂回归是一种…

MiniCPM-V 2.6训练时fuse_adam报错

原本pip install deepspeed安装了0.15.1版本的,但是在进行sft训练的时候还是报错。大概就是fuse_adam这个op编译有错,c版本要大于17什么的,一堆错。看了一堆解决方案尝试后发现如下这样的有用: 1.下载DeepSpeend源码 git clone ht…

《机器学习》周志华-CH8(集成学习)

8.1个体与集成 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统,基于委员会的学习。 同质”集成“:只包含同种类型的个体学习器,同质集成中的个体学习器亦称“基学习器”&#xff0…

WebRTC关键技术及应用场景:EasyCVR视频汇聚平台高效低延迟视频监控解决方案

众所周知,WebRTC是一项开源的实时通信技术,它通过集成音频、视频和数据传输到Web浏览器中,使得实时通信变得简单且无需任何插件或第三方软件。WebRTC不仅是一个API,也是一系列关键技术和协议的集合,它的出现改变了传统…

中断合并参数coalesce_params解释

在网络驱动程序中,中断是指网络设备向处理器发送信号,通知它有数据需要处理。频繁的中断会导致处理器负担过重,从而影响系统性能。为了优化性能,驱动程序可以使用中断合并技术,将多个中断合并为一个,从而减…

docker快速部署zabbix

两台主机 一台作为server 一台作为agent 安装好docker 并保证服务正常运行,镜像正常pull 分析: 部署 Zabbix 容器环境,通常会涉及几个主要组件: MySQL(或 MariaDB 数据库)、Zabbix Server 和 Zabbix Web I…

【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台

一、介绍 果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜(‘土豆’, ‘圣女果’, ‘大白菜’, ‘大葱’, ‘梨’, ‘胡萝卜’, ‘芒果’, ‘苹果’, ‘西红柿’, ‘韭菜’, ‘香蕉’, ‘黄瓜’)…

Redis的一些数据类型(一)

(一)数据类型 我们说redis是key value键值对的方式存储数据,key是字符串,而value是一些数据结构,那今天就来说一下value存储的数据。 我们数据结构包含,String,hash,list,set和zest但…

macOS与Ubuntu虚拟机使用SSH文件互传

1.ubuntu配置: 安装openssh服务: sudo apt-get install openssh-server -y 查看服务启动状态: systemctl status ssh 2.macOS使用scp连接ubuntu并发送文件 查看ubuntu IP : ifconfigmacOS终端连接ubuntu : sc

第五篇:Linux进程的相关知识总结(1)

目录 第四章:进程 4.1进程管理 4.1.1进程管理需要的学习目标 4.1.1.1了解进程的相关信息 4.1.1.2僵尸进程的概念和处理方法: 4.1.1.3PID、PPID的概念以及特性: 4.1.1.4进程状态 4.1.2进程管理PS 4.1.2.1静态查看进程 4.1.2.1.1自定义…

基于AI网关的智慧煤矿安全监测应用

煤矿安全一直是矿业管理的重中之重。由于煤矿环境的恶劣与复杂性,例如工作中间环节多、设施设备多样且集中、空间狭小、环境闭塞、有害气体隐患、粉尘聚集等,针对煤矿的安全监测和防范时常面临着极大的挑战。 随着AI技术的发展与普及,依托AI实…

优青博导团队指导-组蛋白甲基化修饰、实验设计、实验结果分析、测序分析及SCI论文辅助,精准高效,为农医学科研保驾护航!

组蛋白甲基化修饰工具(H3K4me3 ChIP-seq) 组蛋白甲基化类型也有很多种,包括赖氨酸甲基化位点H3K4、H3K9、H3K27、H3K36、H3K79和H4K20等。组蛋白H3第4位赖氨酸的甲基化修饰(H3K4)在进化上高度保守,是被研究最多的组蛋白修饰之一。

gnome Files管理文件学习

Files文件夹页可以非常高效的使用,接下来介绍一些有用的快捷命令和tricks 首先是快捷键: **Ctrl T**Ctrl N**Ctrl WClose window or tab**Ctrl FSearch**Ctrl LEnter location**BackspaceGo Back to a Previous FolderCtrl Zoom inCtrl -Zoom outCtrl 0…

MISC - 第四天(OOK编码,audacity音频工具,摩斯电码,D盾,盲文识别,vmdk文件压缩)

前言 各位师傅大家好,我是qmx_07,今天继续讲解MISC知识点 FLAG 附件是一张图片,尝试binwalk无果 使用StegSolve工具Data Extract查看时 发现PK字段,是大多数压缩包的文件头点击Save Bin保存zip文件 解压缩失败使用修复软件:htt…

六西格玛绿带培训机构哪家好?记住这2点很重要

在探讨“六西格玛绿带培训机构哪家好”这一议题时,我们不得不深入剖析当前市场上纷繁复杂的培训机构,以及如何选择一家既能提供高质量教学,又能满足个人职业发展需求的机构。六西格玛作为一套严谨的管理方法论,旨在通过减少变异、…

directx修复工具怎么用?不懂dll缺失怎么修复?本文整理了详细的dll修复方法!

DLL错误,相信很多小伙伴都头疼这个问题。 在电脑上运行程序或者打开某个文件时,是不是会看到“缺少xxx.dll”的错误弹窗?这时候大部分小白用户都是懵的,不知道这是出了什么问题,又该如何解决。 dll文件在电脑领域中扮…

某易易盾验证码逆向

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架,本文网址如下,使用base64解码获得: aHR0cHM6Ly9kdW4uMTYzLmNvbS90cmlhbC9qaWdzYXc= ———————————————— 我们来看一下接口请求,这里关注的重点就…

9/24作业

1. 分文件编译 分什么要分文件编译? 防止主文件过大,不好修改,简化编译流程 1) 分那些文件 头文件:所有需要提前导入的库文件,函数声明 功能函数:所有功能函数的定义 主函数:main函数&…

【解决虚拟机NAT联网】收藏这份教程就不用再辛苦找了

网上的教程一大堆,看的云里雾里,对于一个小白来说这里看懂了,下一步又看不懂了,一模一样的去设置也不一定成功。 解决办法01 恢复默认设置: 首先公布一个最基础的最直接最有效的恢复网络的办法: 关闭虚拟…

Serverless and Go

本篇内容是根据2019年8月份Serverless and Go音频录制内容的整理与翻译, Johnny、Mat、Jaana 和特邀嘉宾 Stevenson Jean-Pierre 讨论了 Go 世界中的Serverless。什么是Serverless,Serverless适用于哪些用例,有哪些权衡,以及如何在Serverles…