邮递员 RSA 加密

mad*_*fox 5 rsa postman

我想利用邮递员来测试需要使用 RSA 加密对输入字段之一进行加密的 REST API。

我看到邮递员提供了require('crypto-js')使用 AES 加密进行加密的功能,但我该库不提供 RSA 加密。如何使用邮递员自动执行 RSA 加密?

流程如下所示:

  1. 调用返回 RSA 公钥的 REST API

  2. 将 RSA 公钥存储在变量中

  3. 在发送之前使用该公钥加密以下请求中的值

小智 0

我编辑了。

你需要https://github.com/digitalbazaar/forge 并编译它,不是来自 cdn,无法工作

从你的脚本加载

1.load script
var server = postman.getEnvironmentVariable("server");

if (!postman.getEnvironmentVariable("forgeJS")) {
    pm.sendRequest("http://" + server + "/res/forge.js", function(err, res) {
        if (err) {
            console.log(err);
        } else {
            postman.setEnvironmentVariable("forgeJS", res.text());
        }
    })
}

2.eval script and encrypt

var password = '123456';

var public_key = '-----BEGIN PUBLIC KEY-----\n' +
    pm.environment.get("rsaKey") + '\n' +
    '-----END PUBLIC KEY-----';

var jsscript = pm.environment.get("forgeJS");
eval(jsscript);

console.info(public_key)
var publicKey = forge.pki.publicKeyFromPem(public_key);
var encryptedText = forge.util.encode64(publicKey.encrypt("123456", 'RSA-OAEP', { // server Java private decrypt
    md: forge.md.sha256.create(),
    mgf1: {
        md: forge.md.sha1.create()
    }
}));

postman.setEnvironmentVariable("password", encryptedText);
Run Code Online (Sandbox Code Playgroud)