jmeter如何测试加密接口,rsa加密算法实验报告
本文介绍了利用rsa算法实现jmeter的加密参数。
如果在测试过程中某些接口使用了rsa加密算法,我们的jmeter也可以直接调用,不需要开发合作就可以去掉加密代码!
绝对代码
导入org。阿帕奇。公地。编解码器。二进制。base64导入Java。io。bytearrayoutputstream导入Java。安全。关键;导入Java。安全。重点工厂;导入Java。安全。密钥对;导入Java。安全。密钥对生成器;导入Java。安全。私钥;导入Java。安全。公钥;导入Java。安全。签名;导入Java。安全。接口。rsaprivatekey导入Java。安全。接口。RSA公钥;导入Java。安全。规格。pkcs 8 encodedkeyspec导入Java。安全。规格。x 509 encodedkeyspec导入Java。util。hashmap导入Java。util。地图;导入javax。密码。密码;string RSA _ PUB _ KEY= MIG fma 0 gcsqgsib 3d qebaquaa 4 gnadcbiqkbgqdnpfo oakjbloh 7 hvzjj 8s k SPs G7 D2 imipr 1 ukc 3 xqgeuyp/vyiizhxnk 04 DDK 0 elyee 5 xdbffthswok 6 D2 lqk 0 ydwtlfhcdkpbehm/yka 72 ZF 5 kasjgg 8 eqw 4 o 5 zbs/ia 9 w2 oxyz 1s 94 oer xaa zint MAX _ ENCRYPT _ BLOCK=117 int MAX _ DECRYPT _ BLOCK=128 public static byte[]decryptByPublicKey(byte[]加密数据,String publicKey)抛出异常{ byte[]key bytes=base64。解码基数64(公钥);x 509 encodedkeyspec x 509 keyspec=new x 509 encodedkeyspec(密钥字节);重点工厂重点工厂=重点工厂。getinstance(KEY _ ALGORITHM);key publicK=密钥工厂。生成public(x509密钥规范);密码密码=密码。getinstance(关键工厂。getalgorithm());密码.初始化(密码. DECRYPT_MODE,publicK);int input len=加密数据。长度;ByteArrayOutputStream out=new ByteArrayOutputStream();int offSet=0;字节[]缓存;int I=0;//对数据分段解密while(input len-offSet 0){ if(input len-offSet MAX _ DECRYPT _ BLOCK){ cache=cipher。do final(加密数据,偏移量,MAX _ DECRYPT _ BLOCK);} else { cache=密码。do final(加密数据、偏移量、输入len-offSet);} out.write(cache,0,cache。长度);我;offSet=I * MAX _ DECRYPT _ BLOCK } byte[]解密数据=out。tobytearray();出去。close();返回decrypted data } public static byte[]encryptByPublicKey(byte[]data,String publicKey)抛出异常{ byte[]key bytes=base64。解码基数64(公钥);x 509 encodedkeyspec x 509 keyspec=new x 509 encodedkeyspec(密钥字节);重点工厂重点工厂=重点工厂。getinstance(KEY _ ALGORITHM);key publicK=密钥工厂。生成public(x509密钥规范);//对数据加密密码密码=密码。getinstance(关键工厂。getalgorithm());密码.初始化(密码. ENCRYPT_MODE,publicK);int input len=data . length ByteArrayOutputStream out=new ByteArrayOutputStream();int offSet=0;字节[]缓存;int I=0;//对数据分段加密while(input len-offSet 0){ if(input len-offSet MAX _ ENCRYPT _ BLOCK){ cache=cipher。do final(data,offSet,MAX _ ENCRYPT _ BLOCK);} else { cache=密码。do final(数据、偏移、输入透镜偏移);} out.write(cache,0,cache。长度);我;offSet=I * MAX _ ENCRYPT _ BLOCK } byte[]加密数据=out。tobytearray();出去。close();返回encrypted data } String str= idNum=63335199606143151 name=蔺四十电话=17610010005 ;字符串结果="";试试{ result=base64。encode base 64 string(encryptByPublicKey(str。getbytes()、RSA _ PUB _ KEY));System.out.println(结果);} catch(异常e) { //TODO自动生成的捕捉块e . printstacktrace();}打印(结果);vars.put(sign ,result);返回结果;看运行效果
上述代码,直接把加密结果放入变量符号中,在其他地方,如果需要调用加密结果,只需要使用代码:${sign}即可
导入org . Apache.commons . codec . binary . base64;介绍了jmeter包中的类。如果这段代码运行在jmeter环境中,就不需要加载第三方jar包。如果运行在eclipse或其他环境中,则需要用其他base64类来替换。请注意!
关于jmeter接口测试的这篇文章到此为止——使用rsa加密和解密算法。有关jmeterrsa加密和解密算法的更多信息,请搜索以前关于流行IT的文章或继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。