AES加解密算法怎么实现
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍"AES加解密算法怎么实现",在日常操作中,相信很多人在AES加解密算法怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"AES加解密算法怎么实现"
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
教学触摸一体机软件开发
企业管理软件开发 平台
饥荒联机云服务器怎么开
湖南学网络技术
北航网络安全学院王倩云
荒野求生租服务器多少钱
佛山网络安全教育平台
数据库dba的收入
云erp软件是用什么软件开发的
银行服务器如何存储大数字
ibm服务器参数
my sql 软件连接数据库
公司电脑怎么做代理服务器
电信的vpn代理服务器
网络安全证书怎么处理
百度文库的服务器
驻场软件开发人员要求
数据库多表查询字段
虚拟机管理服务器
达梦数据库数字类型
数据库asc语句
河北特种网络技术服务市场价
进口企业实时数据库批发
网络安全诈骗班会美篇
电信的vpn代理服务器
vb 修改 数据库
软件开发招标需要什么资质
租境外服务器如何管理
网络安全事件分析框架
文章如何录入万方数据库