postman参数rsa加密

3,180 阅读1分钟

1. 安装homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

2. 安装node

brew uninstall node
brew link node
brew install node

3. 下载forge

git clone https://github.com/digitalbazaar/forge.git
cd 文件夹位置
npm install

4. postman设置环境变量

5. 在Pre-request Script下添加一下代码

if (!pm.globals.has("forgeJS")) {
    pm.sendRequest("https://raw.githubusercontent.com/loveiset/RSAForPostman/master/forge.js", function (err, res) {
        if (err) {
            console.log(err);
        } else {
            pm.globals.set("forgeJS", res.text());
        }
    })
} else {
    eval(postman.getGlobalVariable("forgeJS"));

    const public_key = '-----BEGIN PUBLIC KEY-----\n'+
		'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDORoOSW2gbHl6s/YmS1jWxb954\n'+
		'X/jflZ2dK65oM/Bxii2Iba80IiC9+Sa1phmOVDAk+IVDsPNZ+YJ2Qg0hPmoLSLxe\n'+
		'f2A6ySJPl5su8TaGOuVZg1SRyk55bjHymQUnxryD/ml1EmBUaGcrs9FCiVBy38kg\n'+
		'eZNbCexucVQxn6OYlwIDAQAB\n'+
		'-----END PUBLIC KEY-----'

    var psd_origin = pm.environment.get('password_origin'); //
    var publicKey = forge.pki.publicKeyFromPem(public_key);
    var encryptedText = forge.util.encode64(publicKey.encrypt(psd_origin, 'RSAES-PKCS1-V1_5', {
    md: forge.md.sha1.create(),
    mgf1: {
        md: forge.md.sha1.create()
    }
    }));
    console.log(pm.environment.get('password'));
    console.log("encrypted text:" + encryptedText);
    pm.environment.set("password", encryptedText);
}

public_key改为自己的公钥

参数的值用双大括号包起来,{{设置的变量名}}