AES 加密 解密
来源:互联网 发布:网络通信招聘 编辑:程序博客网 时间:2024/05/20 04:27
private static byte[] encryptByAES(String encryptStr) {
if (StringUtil.isNullOrEmpty(encryptStr)) {
throw new IllegalArgumentException();
}
byte[] encrypted = null;
try {
// (1)jiamikeyshengcheng
KeyGenerator keygen = KeyGenerator.getInstance("AES");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
keygen.init(random);
key = keygen.generateKey().getEncoded();
// (2)jiamizhunbei
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
byte[] ivArr = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
IvParameterSpec iv = new IvParameterSpec(ivArr);
cipher.init(Cipher.ENCRYPT_MODE, keySpec, iv);
// (3)jiami
encrypted = cipher.doFinal(encryptStr.getBytes());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (InvalidAlgorithmParameterException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return encrypted;
}
private static byte[] decrypt(byte[] encrypByte) {
byte[] original = null;
try {
SecretKeySpec keySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] ivArr = new byte[] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
IvParameterSpec iv = new IvParameterSpec(ivArr);
cipher.init(Cipher.DECRYPT_MODE, keySpec, iv);
original = cipher.doFinal(encrypByte);
} catch (NoSuchAlgorithmException | NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (InvalidAlgorithmParameterException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return original;
}
public static void main(String[] args) throws Exception {
byte[] encrypByte = encryptByAES("message");
byte[] original = decrypt(encrypByte);
System.out.println(new String(original));//输出message
}
- 加密解密。(aes, java)
- AES加密解密类
- AES 加密/解密备忘
- java,AES加密,解密
- AES 加密解密 c#
- AES加密解密程序。
- AES加密和解密
- java AES加密解密
- java AES加密解密
- AES加密解密 应用
- AES 加密解密API
- php AES加密解密
- AES加密解密
- AES加密与解密
- java AES加密解密
- c# aes 加密解密
- java AES 加密/解密
- MySQL AES加密解密
- 深入分析ConcurrentHashMap
- Netty框架之异步事件驱动模型
- 一步一个记录--简单的jquery轮播图,按钮状态控制,layer弹窗
- POJ 2965做题笔记 #DFS# #枚举#
- C语言实验——求两个整数之中较大者 (sdut oj)
- AES 加密 解密
- 算法之路二:刘汝佳算法竞赛入门经典 3.6WERTYU UVa10082
- Spring Boot WAR包运行原理分析
- qsort那点小事
- 无刷新分页jquery
- 输入两个整数,进行四则运算并输出结果
- PHP输出XML格式
- svn和git的入门使用
- 洛谷 P1199 三国游戏