AES 加密和解密工具类
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java.util.log
千家信息网最后更新 2025年12月02日AES 加密和解密工具类
import java.security.NoSuchAlgorithmException;import java.security.SecureRandom;import java.util.logging.Level;import java.util.logging.Logger;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import org.apache.commons.codec.binary.Base64;/** * @version V1.0 * @desc AES 加密工具类 */public class AESUtils { private static final String KEY_ALGORITHM = "AES"; private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding";//默认的加密算法 private static final String PASSWORD_KEY = "123456";//解密秘钥 /** * AES 加密操作 * * @param content 待加密内容 * @param password 加密密码 * @return 返回Base64转码后的加密数据 */ public static String encrypt(String content) { try { Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);// 创建密码器 byte[] byteContent = content.getBytes("utf-8"); cipher.init(Cipher.ENCRYPT_MODE, getSecretKey(PASSWORD_KEY));// 初始化为加密模式的密码器 byte[] result = cipher.doFinal(byteContent);// 加密 return Base64.encodeBase64String(result);//通过Base64转码返回 } catch (Exception ex) { Logger.getLogger(AESUtils.class.getName()).log(Level.SEVERE, null, ex); } return null; } /** * AES 解密操作 * * @param content * @param password * @return */ public static String decrypt(String content) { try { //实例化 Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM); //使用密钥初始化,设置为解密模式 cipher.init(Cipher.DECRYPT_MODE, getSecretKey(PASSWORD_KEY)); //执行操作 byte[] result = cipher.doFinal(Base64.decodeBase64(content)); return new String(result, "utf-8"); } catch (Exception ex) { Logger.getLogger(AESUtils.class.getName()).log(Level.SEVERE, null, ex); } return null; } /** * 生成加密秘钥 * * @return */ private static SecretKeySpec getSecretKey(final String password) { //返回生成指定算法密钥生成器的 KeyGenerator 对象 KeyGenerator kg = null; try { kg = KeyGenerator.getInstance(KEY_ALGORITHM); SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG" ); secureRandom.setSeed(password.getBytes()); //AES 要求密钥长度为 128 kg.init(128, secureRandom); //生成一个密钥 SecretKey secretKey = kg.generateKey(); return new SecretKeySpec(secretKey.getEncoded(), KEY_ALGORITHM);// 转换为AES专用密钥 } catch (NoSuchAlgorithmException ex) { Logger.getLogger(AESUtils.class.getName()).log(Level.SEVERE, null, ex); } return null; } public static void main(String[] args) { String s = "oFWN75fxFHQ"; System.out.println("s:" + s); String s1 = AESUtils.encrypt(s); System.out.println("s1:" + s1); System.out.println("s2:"+AESUtils.decrypt(s1)); }}
加密
密钥
生成
密码
模式
算法
utf-8
密码器
工具
内容
实例
对象
数据
生成器
长度
专用
解密工具
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库中某一列是json
中国国通网络技术有限公司
手机播放器卸载后连接不上服务器
神通数据库增字段数据迁移
网络安全普法宣传创意视频
多千兆网络技术英文缩写
网络安全走进成华
联想服务器远程管理卡还原
网络安全监管上机
网络安全建设制度文档
新老网络安全实施办法
昆明系统软件开发
剑魂之刃是什么软件开发的
蛋蛋网络技术
长宁区网络营销网络技术代理价格
客户机和服务器哪个是主站
网络安全与我作文
steam服务器搭建
取数据库随机
漏洞扫描网络安全知识
互联网科技打一肖
网恋需谨慎网络安全
南京蔬菜软件开发
ssr免流服务器干什么用
网络安全硬笔书法图
密云区数据网络技术咨询
上位机软件开发pdf
cs架构客户端与服务器通信方式
宜宾字节互联网科技有限公司招聘
安徽网络技术创新服务