Postman报文进行加密之RSA公钥加密

RSA公钥加密和私钥加密整个结构是一致的,《Postman报文进行加密之RSA+Bate64》中私钥做的签名,这里RSA公钥是进行加密。

//--------RSA使用公钥对AES密码进行加密-------------//

function pubencrypt(pubencrypt_keyaeskey){

    console.info('pubencrypt_key:'+pubencrypt_key);

    console.info('aeskey: ' + aeskey);

    //注意此处上下的BEGIN PRIVATE KEY不要删除,框架自带的

    const public_key = '-----BEGIN PUBLIC KEY-----\n'

            + pubencrypt_key

            + '\n-----END PUBLIC KEY-----';

    var publicKey = forge.pki.publicKeyFromPem(public_key);

    var buffer = forge.util.createBuffer(aeskey'utf8');

    var bytes = buffer.getBytes();

    var pubencryptedText = forge.util.encode64( publicKey.encrypt(bytes'RSAES-PKCS1-V1_5', {

            md: forge.md.sha256.create(),

            mgf1: {

                md: forge.md.sha1.create()

            }

        })

    );

    console.info('pulencryptedText: '+ pubencryptedText);

    return pubencryptedText;

}

// 第一次运行时从网络加载forgeJS,会导致请求失败

if(!pm.globals.has('forgeJS')){

    console.log('request forge.js from ' + forge_url);

    pm.sendRequest(forge_urlfunction (errres) {

            if (err) {

                console.error(err);

            } else {

                console.info("request forgs.js: Succeed, please try again");

                pm.globals.set('forgeJS'res.text());

            }

        }

    );

}

eval(pm.globals.get('forgeJS'));

pubencryptedText = pubencrypt(pulencrypt_key,vkey);

console.log(pubencryptedText);

postman.setGlobalVariable("encryptkey",pubencryptedText)

这一段主要实现使用RSA公钥加密AES密码,AES密码是自己定义的,加密后的密文传递给变量"encryptkey",作为实际请求的参数。

'pubencrypt_key'是RSA公钥需要加上公钥的格式;

const public_key = '-----BEGIN PUBLIC KEY-----\n'

            + pubencrypt_key

            + '\n-----END PUBLIC KEY-----';

'aeskey'是自定义的AES密码;

forge.pki.publicKeyFromPem(public_key)转换pem格式的公钥;

forge.util.createBuffer(aeskey'utf8')创建缓冲区,设置编码格式;

buffer.getBytes()转成字节;

publicKey.encrypt(bytes'RSAES-PKCS1-V1_5')加密函数,把明文使用'RSAES-PKCS1-V1_5'加密成密文;

forge.util.encode64()把加密后的密文按照encode64进行编码输出;

setGlobalVariable()将密文赋值给Body栏目对应的字段;

这样需要签名加密的参数都完成了,就可以使用新Body发起HTTP请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值