多变量的Base64编码

Ron*_*ark 2 postman

我有3个要绑定并在base64中对其进行编码(键+值)的环境变量的列表。在示例中,现在将3变量存储为键值变量,而我需要在此上进行base64编码:{“ VAR1”:“ 313”,“ VAR2”:“ 33344”,“ VAR3”:“ rovkssj “,}我想应该使用脚本来创建json并对其进行编码。

感谢您的帮助Ronen

Dan*_*ton 9

邮递员使用内置模块CryptoJS。这可以用来使您接近解决方案。

如果将其添加到Pre-request ScriptTests选项卡中并发送请求,您将在Postman控制台中看到Base64对话的输出。在示例中,我获取了“ VAR1” environment variable并将其用作要转换的值。

var CryptoJS = require("crypto-js")

//Encrypt
var rawStr = CryptoJS.enc.Utf8.parse(pm.environment.get('VAR1'))
var base64 = CryptoJS.enc.Base64.stringify(rawStr)
console.log(`Encrypted value: ${base64}`)

//Decrypt
var parsedWord = CryptoJS.enc.Base64.parse(base64)
var parsedStr = parsedWord.toString(CryptoJS.enc.Utf8)
console.log(`Decrypted value: ${parsedStr}`)
Run Code Online (Sandbox Code Playgroud)

邮递员要求

邮递员控制台输出:

邮递员控制台

这可能不是您需要的确切解决方案,但希望它使您更接近实现所需的操作。


The*_*ver 7

我看到,在 @danny-dainton 给出的答案中,他正在导入一个 JS 库。那是不必要的。

您可以只使用 btoa 和 atob 函数。 参考

在邮递员中,这将是(在您的Tests/Pre-request Script选项卡中)

var str = "Hello World!";
var encodedValue = btoa(str);
var decodedValue = atob(encodedValue);
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下解码{ "VAR1": "313", "VAR2": "33344", "VAR3": "rovkssj", } 你可以这样做

var str = "{ \"VAR1\": \"313\", \"VAR2\": \"33344\", \"VAR3\": \"rovkssj\", }";
var encodedValue = btoa(str);
Run Code Online (Sandbox Code Playgroud)

PS:我只是想补充一点,您的 JSON{ "VAR1": "313", "VAR2": "33344", "VAR3": "rovkssj", }无效,因为,末尾有一个额外的内容。