- 26
- 0
- 约1.03万字
- 约 12页
- 2021-04-13 发布于天津
- 举报
JAVA 实现 AES 加密算法代码
近些年 DES 使用越来越少,原因就在于其使用 56 位密 钥,比较容易被破解,近些年来逐渐被 AES 替代, AES 已 经变成目前对称加密中最流行算法之一; AES 可以使用 128、 192、和 256 位密钥,并且用 128 位分组加密和解密数据。 本文就简单介绍如何通过 JAVA 实现 AES 加密。 1. JAVA 实现 闲话少许, 掠过 AES 加密原理及算法, 关于这些直
接搜索专业网站吧,我们直接看 JAVA 的具体实现。 1.1 加密 代码有详细解释,不多废话。 /** * 加密 * * @param content 需要加密的内容 * @param
password 加密密码 * @return */ public static byte[] encrypt(String content, String password) { try
{ KeyGenerator kgen = KeyGenerator.getInstance(AES);
kgen.init(128, new SecureRandom(password.getBytes())); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, AES); Cipher
cipher = Cipher.getInstance(AES);// 创建密码器 byte[]
byteContent = content.getBytes(utf-8); cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 byte[] result = cipher.doFinal(byteContent); return result; // 加
密 } catch (NoSuchAlgorithmException e)
{ e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); }
catch (UnsupportedEncodingException e)
{ e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); }
catch (BadPaddingException e) { e.printStackTrace(); }
return null; } /** * 加密 * * @param content 需要加密的内容 * @param password 加密密码
* @return */ public static byte[] encrypt(String content,
String password) { try { KeyGenerator kgen =
KeyGenerator.getInstance(AES); kgen.init(128, new SecureRandom(password.getBytes())); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat =
secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, AES); Cipher cipher =
Cipher.getInstance(AES);// 创建密码器 byte[] byteContent = content.getBytes(utf-8);
cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 byte[] result = cipher.doFinal(byteContent); return result; // 加 密 } catch (NoSuchAlgorithmException e)
{ e.printStackTrace(); } catch
(NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStack
原创力文档

文档评论(0)