上一篇已经讲解了公钥加密,这篇讲解公钥解密。解密比较简单,直接操作吧。
需求是:接口中的请求体的部分参数需要先加密再请求,返回的结果中部分字段需解密。
1、在请求下新建beanshell后置处理程序,目的是将请求的返回解密。按照RSAUtils.java文件,公钥解密的方法是publicEncrypt(data, publicKey),也就是说我们需要设置2个变量:data和publicKey。其中data是响应体中的data信息。
先按照最简单的思路写,为了保证beanshell预处理程序里的代码是可以正常使用,先写死publicKey公钥的数值,然后用prev.getResponseDataAsString()获取返回的响应体。(可以用prev.getResponseDataAsString(),也可以用正则来获取返回的响应体)安全起见,还是把try{}catch(){}加上。
执行,查看到目前已经拿到响应体信息了,其中返回的data信息才是要解密的信息。
但因为prev.getResponseDataAsString()返回的字符串类型,而且我需要用到其中的data的数值,所以需要将字符串转换为json,然后用getString("data")获取json中的data字段对应的数值。
2、从RSAUtils.java文件中可以看到解密的方式publicEncrypt(data, publicKey),那我想拿到解密结果,那么也就是RSAUtils.publicEncrypt(data, publicKey)。那么beanshell后置处理程序的解密代码就写好了:
打印出结果,这里看到已经解密成功了。