首页 文章

邮差 RSA 加密

提问于
浏览
2

我想利用邮递员来测试 REST API,该 API 需要使用 RSA 加密对其中一个输入字段进行加密。

我看到 postman 通过require('crypto-js')提供了使用 AES 加密加密的功能,但是我的库没有提供 RSA 加密。如何使用 post man 自动执行 RSA 加密?

流程将如下工作:

  • 调用返回 RSA 公钥的 REST API

  • 将 RSA 公钥存储在变量中

  • 在发送之前利用该公钥加密以下请求中的值

1 回答

  • 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);
    

相关问题