Postman 的 Pre-request Script 使用RSA加解密

文章目录

一、概述

Postman内置的Js不支持进行RSA加解密,所以需要引入forgeJS来实现。在 Pre-request Script使用以下脚本:

bash 复制代码
// ------ 导入RSA ------
if (!pm.globals.has("forgeJS")) {
    pm.sendRequest("https://raw.githubusercontent.com/loveiset/RSAForPostman/master/forge.js", (err, res) => {
        if (!err) {
            pm.globals.set("forgeJS", res.text());
            executeRSAOperations();
        }
    });
} else {
    executeRSAOperations();
}

function executeRSAOperations() {
    // 引入 forge 库
    eval(pm.globals.get("forgeJS"));

    // 原始 JSON 数据
    const jsonData = {
        "key1": "value1",
        "key2": "value2"
    };

    // 将 JSON 数据转换为字符串
    const jsonString = JSON.stringify(jsonData);

    // RSA 公钥
    const publicKeyPem = `-----BEGIN PUBLIC KEY-----
    公钥内容
    -----END PUBLIC KEY-----`;

    // RSA 私钥
    const privateKeyPem = `-----BEGIN PRIVATE KEY-----
    私钥内容
    -----END PRIVATE KEY-----`;

    // 使用公钥进行 RSA 加密
    const publicKey = forge.pki.publicKeyFromPem(publicKeyPem);
    const encryptedBytes = publicKey.encrypt(forge.util.encodeUtf8(jsonString));
    const encryptedData = forge.util.encode64(encryptedBytes);

    // 使用私钥进行 RSA 解密
    const privateKey = forge.pki.privateKeyFromPem(privateKeyPem);
    const decryptedBytes = privateKey.decrypt(forge.util.decode64(encryptedData));
    const decryptedData = forge.util.decodeUtf8(decryptedBytes);

    // 输出加密和解密结果
    console.log("加密后数据:", encryptedData);
    console.log("解密后数据:", decryptedData);

    // 更新请求的 Body 数据为加密后的内容
    pm.request.body.raw = encryptedData;
}
相关推荐
llilian_166 小时前
信号发生器 多通道多功能脉冲信号发生器应用解决方案 多功能脉冲发生器
功能测试·单片机·嵌入式硬件·测试工具
程序员小远7 小时前
使用Postman进行一次完整的接口测试
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
我的xiaodoujiao8 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--将自动化测试结果自动推送至钉钉工作群聊
前端·python·测试工具·ui·pytest
生活很暖很治愈9 小时前
GUI自动化测试[3]——控件&数鼠标操作
windows·python·功能测试·测试工具
我的xiaodoujiao11 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 45--生成项目需要的requirements.txt依赖文件
python·学习·测试工具·pytest
@zulnger15 小时前
selenium 自动化测试工具实战项目(订单)
selenium·测试工具·自动化
深圳博众测控1 天前
博众测控 | ISO 16750-2:2023汽车电气测试新标准解读:关键变化与测试设备选型
人工智能·测试工具·汽车
测试界的世清1 天前
金九银十软件测试面试题(800道)
测试工具·面试·职场和发展
帝落若烟1 天前
loadrunner {“msg“:“请求访问:/getInfo,认证失败,无法访问系统资源“,“code“:401}
测试工具·压力测试