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;
}
相关推荐
霍格沃兹测试学院-小舟畅学13 小时前
UI 测试的语义断言:Midscene aiAssert 比像素比对稳在哪、又会骗在哪
人工智能·测试工具
zuozewei15 小时前
附录 A:主流工具对比选型表
人工智能·测试工具
我的xiaodoujiao15 小时前
Django 基础知识详细图文教程 10-Django 模板引擎 3
后端·python·测试工具·django
霍格沃兹测试学院-小舟畅学17 小时前
Google 开源 ARTEMIS:AI Agent 如何接管 Android 真机测试?
人工智能·测试工具
Liaiyang6618 小时前
# 自研 AST 容错初筛工具:横向评测 Django、PyTorch、TensorFlow 三大开源 Python 框架异常收容风险
python·测试工具·自动化·开源软件·代码规范·devops·代码复审
霍格沃兹测试学院-小舟畅学19 小时前
我用 AI 把 Swagger 变成 500 条 pytest 用例,回归从 3 天到 3 小时
人工智能·测试工具
奔跑中的小象2 天前
GuideLLM 压测实战指南:给大模型推理服务做一次完整 SLA 评估
测试工具·guidellm
Madison-No72 天前
基于JMeter工具的性能测试(接口)
python·jmeter·postman
cpolar技术支持2 天前
本地 Playwright 测试报告怎么远程复盘?Trace Viewer 跑起来后,用 cpolar 分享失败现场
前端·自动化测试·测试工具·cpolar·playwright
测试狗科研平台3 天前
材料热传导能力表征——热导率计算方法与流程解析
科技·测试工具·材料工程