jmeter 加密


1.base64加密

import java.util.Base64;
import sun.misc.BASE64Encoder;
BASE64Encoder encode = new sun.misc.BASE64Encoder();
String 加密后参数 = encode.encode("${需要加密的参数}".getBytes());

2.ase加密

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

/**
 * 编码工具类
 * 实现aes加密、解密
 */

    //    public static final Logger LOGGER = LoggerFactory.getLogger(AesUtils.class);
    //    加解密 key xxxxx
    private static final String AES = "AES";
    //偏移量
    private static final String IV_STRING = "aaaaaaaa";
    private static final String key = "xxxxxxxxxx";
    private static final String AESCBC = "AES/CBC/PKCS5Padding";
    private static final String UTF8 = "UTF-8";


    /**
     * 加密
     *
     * @param content 加密内容
     * @return 密文
     * @throws Exception e
     */
    public static String encrypt(String content) {
        byte[] encryptedBytes = new byte[0];
        try {
            byte[] byteContent = content.getBytes(UTF8);
            // 注意,为了能与 iOS 统一
            // 这里的 key 不可以使用 KeyGenerator、SecureRandom、SecretKey 生成
            byte[] enCodeFormat = key.getBytes();
            SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, AES);
            byte[] initParam = IV_STRING.getBytes();
            IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam);
            // 指定加密的算法、工作模式和填充方式
            Cipher cipher = Cipher.getInstance(AESCBC);
            cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
            encryptedBytes = cipher.doFinal(byteContent);
            // 同样对加密后数据进行 base64 编码
        } catch (Exception e) {
            e.getStackTrace();
        }
        return new BASE64Encoder().encode(encryptedBytes);
    }



    /**
     * 解密
     *
     * @param content 密文
     * @return 明文
     * @throws Exception e
     */
    public static String decrypt(String content) {
        // base64 解码
        try {
            byte[] encryptedBytes = new BASE64Decoder().decodeBuffer(content);
            byte[] enCodeFormat = key.getBytes();
            SecretKeySpec secretKey = new SecretKeySpec(enCodeFormat, AES);
            byte[] initParam = IV_STRING.getBytes();
            IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam);
            Cipher cipher = Cipher.getInstance(AESCBC);
            cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
            byte[] result = cipher.doFinal(encryptedBytes);
            return new String(result, UTF8);
        } catch (Exception e) {
            e.getStackTrace();
        }
        return null;
    }

    /**
     * 根据传入的密钥进行验证
     * @param text
     * @param aes
     * @return
     */
    public static boolean verify(String text,String aes) {
        String aesstr = encrypt(text);
        if (aesstr.equalsIgnoreCase(aes)) {
            return true;
        }
        return false;
    }