jmeter接口测试-使用aes加密算法

aes   对称加密算法,通过解密密文,可以得到被加密的数据!

本代码是运行在jmeter的 beanshell中的,你也可以封装成类,编译成jar包,供jmeter调用,都是可以的

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;

public static String Encrypt(String sSrc, String sKey) throws Exception {
        if (sKey == null) {
            return null;
        }
        // 判断Key是否为16位
        if (sKey.length() != 16) {
            return null;
        }
        byte[] encryptRaw = sKey.getBytes("ASCII");
        SecretKeySpec encryptsKeySpec = new SecretKeySpec(encryptRaw, "AES");
        Cipher encrypt = Cipher.getInstance("AES");
        encrypt.init(Cipher.ENCRYPT_MODE, encryptsKeySpec);
        byte[] encrypted = encrypt.doFinal(sSrc.getBytes("ASCII"));
	   return Base64.encodeBase64String(encrypted);// 此处使用BASE64做转码功能,同时能起到2次加密的作用。
}

    
String cSrc = "{\"common\":{\"client\":{\"buildNo\":\"BuildNo\",\"language\":\"Language\",\"os\":\"Os\",\"sdkType\":\"SdkType\",\"version\":\"Version\"},\"deviceId\":\"DeviceId\",\"packageName\":\"com.lanyue.cloudgame\",\"platform\":\"Platform\"},\"preOrderParam\":{\"cpOrderId\":\"CpOrderId\",\"currencyLimit\":true,\"goodDesc\":\"gooddesc\",\"goodName\":\"goodname\",\"money\":1,\"roleId\":\"0\",\"roleName\":\"roleName\",\"serverId\":\"ServerId\",\"serverName\":\"servername\"}}";
//密码,长度要是8的倍数
String cKey = "088c80bf980469c3";
// 需要加密的字串
System.out.println(cSrc);
// 加密
String enString = Encrypt(cSrc, cKey);    
vars.put("enString",enString);
return enString;

以上代码再运用aes加密之后,又对结果进行了base64 编码,这样就便于查看和传输了,aes的直接加密结果是字节集,强行转换成字符串的话,肯定是一串乱码~!

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值