AES加解密算法怎么实现
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"AES加解密算法怎么实现",在日常操作中,相信很多人在AES加解密算法怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"AES加解密算法怎么实现"
千家信息网最后更新 2026年11月03日AES加解密算法怎么实现
这篇文章主要介绍"AES加解密算法怎么实现",在日常操作中,相信很多人在AES加解密算法怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"AES加解密算法怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
/** * base64 encode * @param bytes 待编码的byte[] * @return 编码后的base64 code */ public static String base64Encode(byte[] bytes){ return Base64.encodeBase64String(bytes); } /** * base64 decode * @param base64Code 待解码的base64 code * @return 解码后的byte[] * @throws Exception */ public static byte[] base64Decode(String base64Code) throws Exception{ return StringUtils.isEmpty(base64Code) ? null : Base64.decodeBase64(base64Code); } public static byte[] aesEncryptToBytes(String content, byte[] encryptKey) throws Exception { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgenInit(kgen, encryptKey); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(kgen.generateKey().getEncoded(), "AES")); return cipher.doFinal(content.getBytes("utf-8")); } /** * AES加密为base64 code * @param content 待加密的内容 * @param encryptKey 加密密钥 * @return 加密后的base64 code * @throws Exception */ public static String aesEncrypt(String content, String encryptKey) throws Exception { return base64Encode(aesEncryptToBytes(content, getAESKey(encryptKey))); } public static String aesDecryptByBytes(byte[] encryptBytes, byte[] decryptKey) throws Exception { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgenInit(kgen, decryptKey); Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(kgen.generateKey().getEncoded(), "AES")); byte[] decryptBytes = cipher.doFinal(encryptBytes); return new String(decryptBytes,"utf-8"); } /** * 将base64 code AES解密 * @param encryptStr 待解密的base64 code * @param decryptKey 解密密钥 * @return 解密后的string * @throws Exception */ public static String aesDecrypt(String encryptStr, String decryptKey) throws Exception { return StringUtils.isEmpty(encryptStr) ? null : aesDecryptByBytes(base64Decode(encryptStr), getAESKey(decryptKey)); } public static byte[] getAESKey(String encodingAESKey){ byte[] array = Base64.decodeBase64(encodingAESKey+"="); return array; } /** **防止在linux下随机生成key * @param kgen * @param bytes * @throws NoSuchAlgorithmException */ public static void kgenInit(KeyGenerator kgen, byte[] bytes) throws NoSuchAlgorithmException { //1.防止linux下 随机生成key SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG" ); secureRandom.setSeed(bytes); //2.根据密钥初始化密钥生成器 kgen.init(128, secureRandom); } public static void main(String[] args) throws Exception { /** 测试线secret_key */ String encoding_aes_key="88assadsfsdfsffsf6dsfsdfd"; /** 参数加密 */ String encrypt = aesEncrypt(content, encoding_aes_key); System.out.println("加密后:" + encrypt); /** 参数解密 */ String decrypt = aesDecrypt(encrypt, encoding_aes_key); System.out.println("解密后:" + decrypt); }到此,关于"AES加解密算法怎么实现"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
加密
算法
密钥
学习
生成
参数
更多
编码
utf-8
帮助
实用
接下来
内容
文章
方法
理论
生成器
知识
篇文章
网站
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
南京欣网互联网络科技
中智农互联网科技
新华互联网科技
北京互联网科技有限公司
安徽鑫晟辉互联网科技
凡科互联网科技
鑫亿盛互联网科技
智慧科技互联网
北京禾田雨橡互联网科技
广州凡科互联网科技
友谊互联网络科技
深圳天众互联网科技公司
成都狮子座互联网科技
温州喔噻互联网科技有限公司
长沙互联网科技
美国互联网科技公司
神州科技互联网有限公司
互联网硬科技公司
网互联网络科技
科技互联网企业在行动
互联网科技活动banner
科技互联网公司装修
互联网与科技金融数据
互联网科技股票
科技创新互联网企业
滨湖区互联网智能科技产品供应
佩信高科技互联网
江苏互联网智能科技产品出厂价
马化腾互联网科技教学
承德科技产业互联网平台