package com.imyeyu.utils; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; /** * @author 夜雨 * @since 2025-10-29 16:11 */ public class Decryptor { /** * 解密字符串 * * @param data 待解密字节数据 * @param key 密钥 * @return 解密结果 */ public static byte[] aes(String data, byte[] key) { return aes(data.getBytes(), key); } /** * 解密 * * @param data 待解密字节数据 * @param key 密钥 * @return 解密结果 */ public static byte[] aes(byte[] data, byte[] key) { try { SecretKey secretKey = new SecretKeySpec(key, "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, secretKey); return cipher.doFinal(data); } catch (IllegalBlockSizeException | BadPaddingException | NoSuchPaddingException e) { throw new RuntimeException("invalid data"); } catch (InvalidKeyException e) { throw new RuntimeException("invalid key"); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("not support AES encrypt"); } } }