123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package com.fdkankan.common.util;
- import com.aliyuncs.utils.Base64Helper;
- import javax.crypto.Cipher;
- import javax.crypto.spec.IvParameterSpec;
- import javax.crypto.spec.SecretKeySpec;
- public class AesUtil {
- /**
- * @author miracle.qu
- * AES算法加密明文
- * @param data 明文
- * @param key 密钥,长度16
- * @param iv 偏移量,长度16
- * @return 密文
- */
- public static String encryptAES(String data,String key,String iv) throws Exception {
- try {
- Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
- int blockSize = cipher.getBlockSize();
- byte[] dataBytes = data.getBytes();
- int plaintextLength = dataBytes.length;
- if (plaintextLength % blockSize != 0) {
- plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
- }
- byte[] plaintext = new byte[plaintextLength];
- System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
- SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
- IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
- cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
- byte[] encrypted = cipher.doFinal(plaintext);
- return Base64Helper.encode(encrypted).trim();
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- }
|