我想利用邮递员来测试 REST API,该 API 需要使用 RSA 加密对其中一个输入字段进行加密。
我看到 postman 通过require('crypto-js')提供了使用 AES 加密加密的功能,但是我的库没有提供 RSA 加密。如何使用 post man 自动执行 RSA 加密?
require('crypto-js')
流程将如下工作:
调用返回 RSA 公钥的 REST API
将 RSA 公钥存储在变量中
在发送之前利用该公钥加密以下请求中的值
我把它弄了
你需要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);
1 回答
我把它弄了
你需要https://github.com/digitalbazaar/forge并编译它,而不是从 cdn,不能工作
从脚本加载