【Java加密解密】AES加密算法
来源:互联网 发布:vb连接oracle 编辑:程序博客网 时间:2024/05/01 20:48
AES加密和解密JDK和BC代码
// JDK AES算法实现private static void jdkAES() {try {// 生成密钥KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");keyGenerator.getProvider();System.out.println(keyGenerator.getProvider());keyGenerator.init(new SecureRandom());SecretKey secretKey = keyGenerator.generateKey();byte[] bytesKey = secretKey.getEncoded();// key转换SecretKeySpec key = new SecretKeySpec(bytesKey, "AES");// 加密Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, key);String src = "加密的字符串";byte[] result = cipher.doFinal(src.getBytes());System.out.println("result aes encrypt:"+ Hex.encodeHexString(result));// 解密cipher.init(Cipher.DECRYPT_MODE, key);result = cipher.doFinal(result);System.out.println("result aes decrypt:" + new String(result));} catch (Exception e) {e.printStackTrace();}}// bc的AES实现private static void bcAES() {try {Security.addProvider(new BouncyCastleProvider());// 生成密钥KeyGenerator keyGenerator = KeyGenerator.getInstance("AES", "BC");keyGenerator.getProvider();System.out.println(keyGenerator.getProvider());keyGenerator.init(new SecureRandom());//AES算法,长度超过128位,受到美国法律限制,需要替换授权SecretKey secretKey = keyGenerator.generateKey();byte[] bytesKey = secretKey.getEncoded();// key转换SecretKeySpec key = new SecretKeySpec(bytesKey, "AES");// 加密Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");cipher.init(Cipher.ENCRYPT_MODE, key);String src = "加密的字符串";byte[] result = cipher.doFinal(src.getBytes());System.out.println("result aes encrypt:"+ Hex.encodeHexString(result));// 解密cipher.init(Cipher.DECRYPT_MODE, key);result = cipher.doFinal(result);System.out.println("result aes decrypt:" + new String(result));} catch (Exception e) {e.printStackTrace();}}
BC实现的时候 如果超过128,会报错。这是美国法律的规定。
解决方法网上有 可以替换jar来搞定。
0 0
- 【Java加密解密】AES加密算法
- Java 加密解密之对称加密算法AES
- Java 加密解密之对称加密算法AES
- Java 加密解密之对称加密算法AES
- Java 加密解密之对称加密算法AES
- java的对称加密算法 AES -----加密和解密
- 加密解密。(aes, java)
- java,AES加密,解密
- java AES加密解密
- java AES加密解密
- java AES加密解密
- java AES 加密/解密
- Java AES加密解密
- java AES 加密解密
- JAVA AES加密/解密
- java AES加密解密
- 【加密/解密】Botan 中的 AES 加密算法实例
- 【加密/解密】Botan 中的 AES 加密算法实例
- 关于java对象内存的一些总结
- 浅谈Java多线程的同步问题...【Pnoker】
- 深入Java虚拟机JVM类加载初始化学习笔记
- POJ1850 递推关系
- MapReduce编程8步骤
- 【Java加密解密】AES加密算法
- 03-3. 12-24小时制
- 03-4. 成绩转换
- android拍照获得图片及获得图片后剪切设置到ImageView
- Hadoop自定义数据类型编程练习
- 懒人日记 之 自己到底有多懒
- Hadoop到底能做什么?怎么用hadoop?
- iOS 5中UIViewController
- vijos 1042 捕风捉影