JAVA AES CBC PKCS5Padding加解密
2019-01-21 02:40:40来源:博客园 阅读 ()
package com.hzxc.groupactivity.util; /** * Created by hdwang on 2019/1/17. */ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; /** * 加密工具类 */ public class AESUtil { private static final Logger logger = LoggerFactory.getLogger(AESUtil.class); private static final String KEY_ALGORITHM = "AES"; private static final String DEFAULT_CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding";//默认的加密算法 /** * AES 加密操作 * * @param content 待加密内容 * @param password 加密密码 * @param iv 使用CBC模式,需要一个向量iv,可增加加密算法的强度 * @return 加密数据 */ public static byte[] encrypt(String content, String password,String iv) { try { //创建密码器 Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM); //密码key(超过16字节即128bit的key,需要替换jre中的local_policy.jar和US_export_policy.jar,否则报错:Illegal key size) SecretKeySpec keySpec = new SecretKeySpec(password.getBytes("utf-8"),KEY_ALGORITHM); //向量iv IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes("utf-8")); //初始化为加密模式的密码器 cipher.init(Cipher.ENCRYPT_MODE,keySpec,ivParameterSpec); //加密 byte[] byteContent = content.getBytes("utf-8"); byte[] result = cipher.doFinal(byteContent); return result; } catch (Exception ex) { logger.error(ex.getMessage(),ex); } return null; } /** * AES 解密操作 * * @param content 密文 * @param password 密码 * @param iv 使用CBC模式,需要一个向量iv,可增加加密算法的强度 * @return 明文 */ public static String decrypt(byte[] content, String password,String iv) { try { //创建密码器 Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM); //密码key SecretKeySpec keySpec = new SecretKeySpec(password.getBytes("utf-8"),KEY_ALGORITHM); //向量iv IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes("utf-8")); //初始化为解密模式的密码器 cipher.init(Cipher.DECRYPT_MODE,keySpec,ivParameterSpec); //执行操作 byte[] result = cipher.doFinal(content); return new String(result,"utf-8"); } catch (Exception ex) { logger.error(ex.getMessage(),ex); } return null; } }
参考网址:
https://www.cnblogs.com/lilinzhiyu/p/8024100.html
原文链接:https://www.cnblogs.com/hdwang/p/10286407.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:设计模式:策略模式
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- DES/3DES/AES 三种对称加密算法实现 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash