jmeter接口测试AES加密输出16进制结果。

该方法无需引用外部jar包。

一、AES加密组成:

        1、加密模式:ECB、CBC、CTR、CFB、OFB
        2、补充方式:PKCS5Padding、PKCS7Padding、AnsiX923、ISO10126、ZeroPadding
        3、密钥长度:128、192或256位,例如密钥长度为128位,一个字节8位,128/8=16字节,                  即密钥为16个字节。

二、在jmeter中添加前置处理器JSR223 PreProcessor。 语言选择:beanshell 或 Java

三、代码如下

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
/** 加密方法 */
private static final String SECRET_AES = "AES";
/** 加密实例 */ //"算法/模式/补码方式"
private static final String SECRET_AES_INSTANCE = "AES/ECB/PKCS5Padding";
/** 16进制 参数数组 */
private static final char[] HEX_CHARS = "0123456789ABCDEF".toCharArray();

/**
* AES 加密
*
* @param plainText 明文
* @param password 密码
* @return 密文
*/
public static String encrypt(String plainText, String password) {
   if (plainText == null || password == null) {
       throw new InvalidParameterException("invalid parameters");
   }
   try {
       SecretKeySpec key = new SecretKeySpec(password.getBytes(), SECRET_AES);
       Cipher cipher = Cipher.getInstance(SECRET_AES_INSTANCE);// 创建密码器
       cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
       byte[] out = cipher.doFinal(plainText.getBytes());// 二进制加密
       return byte2hex(out); //调用 “byte2hex”方法,返回16进制加密密文
   } catch (Exception e) {
	  throw new IllegalStateException("aes encrypt failed", e);
   }
}
//转16 进制
public static String byte2hex(byte[] bytes) {
   if (bytes == null) {
       return null;
   }
   StringBuilder sb = new StringBuilder(); 
   for (byte value : bytes) { 
   	   int v = value & 0xff;
   	   sb.append(HEX_CHARS[v / 0x10]).append(HEX_CHARS[v % 0x10]);
   	  }
   	  return sb.toString();
}

/* Key:加密的秘钥,key必须16位*/
String Key = "1234567812345678";
String id = "123&abc";
String enc = encrypt(id,Key);
vars.put("id",enc);
log.info("id= "+enc);



四、加密结果

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2lsZW5jZV9qZ2c=,size_20,color_FFFFFF,t_70,g_se,x_16

五、加密结果验证

1、验证地址:AES在线加密解密工具 - MKLab在线工具

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAc2lsZW5jZV9qZ2c=,size_20,color_FFFFFF,t_70,g_se,x_16

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值