postman 密码rsa加密登录-2加密密码

news2024/9/20 7:52:17

上一篇讲了获取公钥,将环境准备好之后,在登录接口的Pre-request Scrip 里,使用公钥进行加密后在正常登录。本文采用的方案是使用第三方模块forge.js来实现加密。

1、环境准备好,系统git 和node都OK。下载forge.js

git clone https://github.com/digitalbazaar/forge.git

      进入下载的路径下进入bash进行安装

npm install

安装遇到的问题:

问题一:

Error: EPERM: operation not permitted, mkdir 'D:\Program Files\nodejs\node_global\node_modules

        是因为node是admin权限,用户无该文件权限。解决方法nodejs文件右键属性,在安全里修改文件权限,用户的权限全加,重新安装不再报这个错。

问题二:

Error: error:0308010C:digital envelope routines::unsupported

      是因为node.js版本过高的原因,卸载后重新安装V17以下版本,重新安装不再报错。

2、Pre-request Scrip脚本如下

       修改明文密码后,进行加密即可。有的文章提到加密前,密码后还加了时间戳之类的信息,这个就看具体的系统是如何实现的,具体可以咨询开发同事。

var clearText = '123456'
var public_key ='-----BEGIN PUBLIC KEY-----\n'+
                pm.environment.get("pubKey") + '\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
pm.environment.set("password",encryptedText)


3、下发登录接口 ,查看接口返回里,已经有系统的cookie拉。

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

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

相关文章

Java-Atomic原子操作类详解及源码分析,Java原子操作类进阶,LongAdder源码分析

文章目录 一、Java原子操作类概述1、什么是原子操作类2、为什么要用原子操作类3、CAS入门 二、基本类型原子类1、概述2、代码实例 三、数组类型原子类1、概述2、代码实例 四、引用类型原子类1、概述2、AtomicReference3、ABA问题与AtomicStampedReference4、一次性修改&#xf…

SpringBoot (1)

目录 1 入门案例 1.1 环境准备 1.2 编写pom.xml 1.3 编写入口程序 1.4 编写接口 1.5 编写配置 1.6 快速部署 1.6.1 打jar包 1.6.2 部署 1.7 访问接口 2 全注解开发 2.1 常用注解 2.2 属性绑定注解 2.2.1 注册组件 2.2.2 ConfigurationProperties(prefix"te…

AlphaPose Pytorch 代码详解(一):predict

前言 代码地址:AlphaPose-Pytorch版 本文以图像 1.jpg(854x480)为例对整个预测过程的各个细节进行解读并记录 python demo.py --indir examples/demo --outdir examples/res --save_img1. YOLO 1.1 图像预处理 cv2读取BGR图像 img [480,…

哈希的应用--位图和布隆过滤器

哈希的应用--位图和布隆过滤器 位图1. 位图概念2. 位图在实际中的应用3. 位图相似应用给定100亿个整数,如何找到只出现一次的整数?1个文件100亿int,1G内存,如何找到不超过2次的所有整数 布隆过滤器1. 布隆过滤器的提出2. 布隆过滤…

HarmonyOS学习 -- ArkTS开发语言入门

文章目录 一、编程语言介绍二、TypeScript基础类型1. 布尔值2. 数字3. 字符串4. 数组5. 元组6. 枚举7. unknown8. void9. null 和 undefined10. 联合类型 三、TypeScript基础知识条件语句if语句switch语句 函数定义有名函数和匿名函数可选参数剩余参数箭头函数 类1. 类的定义2.…

华为认证 | 这门HCIA认证正式发布!

华为认证云计算工程师HCIA-Cloud Computing V5.5(中文版)自2023年9月28日起,正式在中国区发布。 01 发布概述 基于“平台生态”战略,围绕“云-管-端”协同的新ICT技术架构,华为公司打造了覆盖ICT领域的认证体系&#…

机器人制作开源方案 | 齿轮传动轴偏心轮摇杆简易四足

1. 功能描述 齿轮传动轴偏心轮摇杆简易四足机器人是一种基于齿轮传动和偏心轮摇杆原理的简易四足机器人。它的设计原理通常如下: ① 齿轮传动:通过不同大小的齿轮传动,实现机器人四条腿的运动。通常采用轮式齿轮传动或者行星齿轮传动&#xf…

git多分支、git远程仓库、ssh方式连接远程仓库、协同开发(避免冲突)、解决协同冲突(多人在同一分支开发、 合并分支)

1 git多分支 2 git远程仓库 2.1 普通开发者,使用流程 3 ssh方式连接远程仓库 4 协同开发 4.1 避免冲突 4.2 协同开发 5 解决协同冲突 5.1 多人在同一分支开发 5.2 合并分支 1 git多分支 ## 命令操作分支-1 创建分支git branch dev-2 查看分支git branch-3 分…

bash一行输入,多行回显demo脚本

效果图: 脚本: #!/bin/bash # 定义一个变量,用来存储输入的内容 input"" # 定义一个变量,用来存储输入的字符 char""# 为了让read能读到空格键 IFS_store$IFS IFS# 提示内容,在while循环中也有&a…

SMOS数据处理,投影变换,‘EPSG:6933‘转为‘EPSG:4326‘

在处理SMOS数据时,遇到了读取nc数据并存为tif后,影像投影无法改变,因此全球数据无法重叠。源数据的投影为EPSG:6933,希望转为EPSG:4326。 解决代码。 python import os import netCDF4 as nc import numpy as np from osgeo impo…

阿里云ModelScope 是一个“模型即服务”(MaaS)平台

简介 项目地址:https://github.com/modelscope/modelscope/tree/master ModelScope 是一个“模型即服务”(MaaS)平台,旨在汇集来自AI社区的最先进的机器学习模型,并简化在实际应用中使用AI模型的流程。ModelScope库使开发人员能够通过丰富的…

sap 一次性供应商 供应商账户组 临时供应商 <转载>

原文链接:https://blog.csdn.net/xianshengsun/article/details/132620593 sap中有一次性供应商这个名词,一次性供应商和非一次性供应商又有什么区别呢? 有如何区分一次性供应商和非一次性供应商呢? 1 区分一次性供应商和非一次性…

狄拉克函数及其性质

狄拉克函数及其性质 狄拉克函数 近似处理 逼近近似 积分近似 狄拉克函数的性质 狄拉克函数的Hermite展开

【C++】【自用】STL六大组件:算法

文章目录 🔺sortstable_sort🔺reverse🔺swap🔺find🔺max/min🔺next_permutation/prev_permutation 全排列binary_searchlower_bound/upper_bound 求下界和上界set_union/set_intersection/set_difference 求…

结构体课程自我理解

目录 1. 结构体类型的声明 1.2特殊的声明方法 1.3结构体的自引用 1.4 typedef 对结构体命名 2. 结构体变量的创建和初始化 3. 结构成员访问操作符 4. 结构体内存对⻬ 4.1下面给大伙4个练习题,有自我解析 4.2为什么存在内存对齐 4.3修改默认对齐数 5. …

Centos中利用自带的定时器Crontab_实现mysql数据库自动备份_linux中mysql自动备份脚本---Linux运维工作笔记056

这个经常需要,怕出问题因而需要经常备份数据库,可以利用centos自带的定时器,配合脚本实现自动备份. 1.首先查看一下,这个crontab服务有没有打开: 执行:ntsysv 可以看到已经开机自启动了. 注意这个操作界面,用鼠标不行,需要用,tab按键,直接tab到确定,或取消,然后按回车回到命…

如何下不可选中的文章

背景: 看到了一篇比较有用的微信公众号文章(这个文章应该是跳转到了公众号外的网站的 url 了),想留档,但是手机选中不了。但是这个事情作为程序员,怎么能束手呢。 操作: 1、将微信公众号链接在…

Copa:无需重建镜像,直接修补容器漏洞

关注【云原生百宝箱】公众号,与你一起探讨应用迁移,GitOps,二次开发,解决方案,CNCF生态。 copa 是一个使用 Go 编写的 CLI 工具,基于 buildkit,可以根据像 Trivy 这样的流行工具的漏洞扫描结果直…

LeetCode-343-整数拆分

题目描述: 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 题目链接: LeetCode-343-整数拆分 解题思路: 还是根据动规五…

Centos (含Rocky-Linux) VSFTPD 简单设置

本文并非深入讨论vsftp配置的文章,仅以能连通为目的,适合那些临时需要上传点东西到服务器的场景。 一、安装 dnf -y updatednf -y install vsftpdsystemctl start vsftpdsystemctl enable vsftpd二、防火墙 开放21端口: firewall-cmd --zo…