上一篇已經講解了公鑰加密,這篇講解公鑰解密。解密比較簡單,直接操作吧。
需求是:接口中的請求體的部分參數需要先加密再請求,返回的結果中部分字段需解密。
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后置處理程序的解密代碼就寫好了:
打印出結果,這里看到已經解密成功了。