带你详细了解AES算法《附带java、vue实现》-天天快资讯
(资料图)
不论前途如何,不管发生什么事情,我们都不失去希望,希望是一种美德。——《雨果传》
1.加密算法
在密码学中,加密算法分为单向加密和双向加密。单向加密包括MD5
、SHA
等摘要算法,它们是不可逆的。双向加密包括对称加密和非对称加密。双向加密是可逆的,存在密文的密钥。对称加密是指加密和解密使用相同的密钥,包括AES
加密、DES
加密等。非对称加密是指加密和解密使用不同的密钥,包括RSA
加密等。2.AES介绍
是用来替代DES的新一代分组加密算法。AES支持三种长度的密钥:128位、192位、256位。AES:高级加密标准(Advanced Encryption Standard)是美国联邦政府采用的一种区块加密标准,是目前最流行的一种
对称加密算法
。
3.AES的加密过程(AES处理单位:字节)
AES
的加解密过程和DES
一样,都是通过分组加密、分组解密。所谓分组加密,就是将待加解密的内容按照128
位进行分组,将密钥按照128
位、192
位、256
位进行分组,分别将分组后的明文与相应分组后的密钥进行加解密。
加密: 明文与密钥分组后,对每组:明文组与密钥组处理 -> 轮密钥加 -> 10轮加密 -> 密文组 解密: 对每组:密文组 -> 轮密钥加 -> 10轮解密 -> 明文组
明文分组: 每组长度相等,都是128位(16字节); 密钥分组: 有128位、192位、256位,推荐加密轮数分别为 10、12、14
密钥组处理: 以密钥分组每组128位为例(则推荐加密轮数为10,前9次执行操作一样,第十次有所不同) 类似地,128位密钥也是用字节为单位的矩阵表示,通过密钥编排函数,形成具有44个元素的序列W[0],W[1], … ,W[43](每个元素4个字节);其中,W[0],W[1],W[2],W[3]为原始密钥,其余40个元素分为10组,每组4个元素(4*4=16字节),分别用于10轮加密。
AES加密算法涉及4种操作: 字节替代(SubBytes)
、行移位(ShiftRows)
、列混淆(MixColumns)
和轮密钥加(AddRoundKey
)。下图给出了AES加解密的流程:
4.代码实现
1.生成密钥
public static String genAesSecret(){ try { KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); //密钥长度,单位:字节,AES支持128、192、256字节长度的密钥,上面文章已介绍 keyGenerator.init(128); SecretKey sk = keyGenerator.generateKey(); byte[] b = sk.getEncoded(); return Base64.encodeBase64String(b); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); throw new RuntimeException("没有此算法"); } }
2.AES加密
public static String aesEncrypt(String content) throws Exception { //指定加密算法 Cipher cipher = Cipher.getInstance("AES"); //创建加密规则:指定key和加密类型 SecretKeySpec secretKeySpec = new SecretKeySpec(SECRET.getBytes(), "AES"); //指定加密模式为加密,指定加密规则 cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec); //调用加密方法 byte[] result = cipher.doFinal(content.getBytes()); //用Base64编码 return new String(java.util.Base64.getEncoder().encode(result)); }
3.AES解密
public static String aesDecrypt(String content) throws Exception { //Base64解码 byte[] result = java.util.Base64.getDecoder().decode(content); //指定加密算法 Cipher cipher = Cipher.getInstance("AES"); //创建加密规则:指定key和加密类型 SecretKeySpec secretKeySpec = new SecretKeySpec(SECRET.getBytes(), "AES"); //指定加密模式为解密,指定加密规则 cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); return new String(cipher.doFinal(result)); }
注意:SECRET.getBytes()
我这里是一个常量密钥,通过密钥生成后写成常量SECRET
。
4.前端解密
安装依赖
npm install crypto-js --save-dev
// 引入import CryptoJS from "crypto-js"// 密钥const AES_KEY = "P@S5W0rDK3yBACHU" // 后端提供// 解密export function decrypt (word) { var key = CryptoJS.enc.Utf8.parse(AES_KEY) var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }) return CryptoJS.enc.Utf8.stringify(decrypt).toString()}
5.Java测试用例
标签:
推荐文章
- 带你详细了解AES算法《附带java、vue实现》-天天快资讯
- arbor
- 俄外长:西方媒体对“北溪”爆炸新说法“轻率不成熟” 今亮点
- 会销礼品网
- 天天即时看!科技要闻:下一次Apple Watch活动挑战赛定于下个月的世界环境日
- 每日短讯:岳阳林纸:2022年归母净利润同比增106.51%至6.16亿元,拟10派1.38元
- 红豆社区官网电脑版_红豆社区崇左
- 春晓路_对于春晓路简单介绍
- 广哈通信:公司根据发展需要 已与西安电子科技大学合作进行物联网、智能通信等方向的研究-天天视点
- 广东松山职业技术学院占地面积_广东松山职业技术学院首页
- 焦点热议:联33_lian33
- 南充恒通电力公司开展“春风十里,不如恒通有你”“三八”妇女节活动
- 电脑麦克风怎么打开win10_电脑麦克风怎么打开_今日关注
- 少儿主持人大赛自我介绍一分钟_少儿主持
- 【环球报资讯】珀莱雅红宝石精华值不值得买(珀莱雅红宝石精华)
- 两年内五起大事故 美国“毒火车”运营公司被查
- 天天滚动:大话西游之月光宝盒免费完整版在线观看
- 今热点:利元亨:公司正在加大清洗制绒、PVD、PECVD核心工艺的研发力度 已掌握相关核心技术 待实验验证
- 山东右典健康产业有限公司荣获“山东社会责任最具影响力企业”
- 马思纯白敬亭演过的电视剧_白敬亭演过的电视剧
- 百度空间登录页面_百度空间登陆
- 绿茵生态(002887)3月9日主力资金净卖出257.86万元
- 梅西加盟巴黎后4场欧冠淘汰赛,队报评分3场3分1场6分
- 学生第一次乘坐高铁的流程_乘坐高铁的流程-动态焦点
- 观热点:午间涨跌停分析:25只涨停股,0只跌停股,中公高科_数字经济6天5板
- 视频文件有几种格式_视频格式有哪几种|快讯
- 房屋知识科普: 房产证上是老公名字我有份吗政策怎么规定的呢|当前滚动
- 天天日报丨新天龙八部脚本哪个好_新天龙八部脚本
- 我市开展“智慧应急”业务系统培训_全球看点
- 安徽汇诚知识产权代理有限公司-焦点简讯
- 成都到广州多少公里_成都到广州
- 老百姓追捧的5款“廉价酒”,慢慢叠加的口碑,遇到别错过
- 快乐赚官网 世界观焦点
- Inno3D宣布推出GeForceRTXiChillFrostbite系列水冷显示卡|全球短讯
- 焦点快看:“春景这里独好”诗人把柳树写活了,一枝一叶涌动着画意诗情
- 战忽局是什么
- 大桥来新球队前10场以180俱乐部命中率做到场均25+ NBA历史首人
- 美团团节社是干什么的|全球关注
- 苹果的吃法及做法大全简单_苹果的吃法及做法大全
- 全球新资讯:立杆
- 我市现有林地面积和森林覆盖率全省居首
- 【当前独家】吉利帝豪ec8
- 专家称打 HPV 疫苗不必纠结几价:越早注射,效果越好
- 皮卡堂礼包激活码领取-4399皮卡堂活动礼包2激活码是多少
- 东风汽车公司技术中心_今日精选
- 【焦点热闻】京泉华股东户数下降43.19%,户均持股39.34万元
- 重点聚焦!卡斯卡里诺:如果芒特想要离开切尔西,可以考虑转投纽卡
- 一匹等于多少瓦 每日焦点
- 环球关注:韩国警方搜查刘亚仁住宅 将以嫌疑人身份对其传唤
- 月光变奏曲剧情介绍|全球消息
- 环球速看:快手辟谣拟收购小贷牌照:消息不实
- 环球热讯:世博大熊猫彩色金条价格今天多少一克(2023年03月07日)
- 《祝卿好》追剧日历 《祝卿好》每周更新几集
- 世界短讯!金都城:多空轮转,日内留意下行走阴!
X 关闭
最新资讯
- 焦点讯息:全球十大催泪感人电影
- 当前焦点!银河号事件_说一说银河号事件的简介
- 蒜薹炒肉丝教学视频_蒜薹炒肉-当前动态
- 云南西盟:春色盎然催人进 春耕备耕正当时
- 美国纽约州发生踩踏事件 造成1死8伤 当前快看
- 【环球播资讯】元宵节是法定节假日吗 正月十五元宵节是不是法定节假日
- 霸气的公会名字_霸气的公会名字大全|今日播报
- 魔卡少女樱透明牌
- 每日热门:腾讯云容器服务CFS CSI插件升级参考
- 中国中免(601888)3月6日主力资金净卖出5.15亿元
- 呢子大衣怎么清洗
- 厦门集美儿童公园有几个出入口?_每日快看
- 世界新消息丨三张叶
- 当前速递!055期唐龙排列三预测奖号:单挑一注推荐
- 世界肥胖联合会:全球一半人口2035年可能超重
- 周作人的简介以及他和鲁迅的关系_当前通讯
- 山东经济学院教工宿舍
- 世界新消息丨石田大和头像_石田大和
- 森蚺和蟒蛇的区别是什么_森蚺和蟒蛇的区别
- 泾渭分明是指同一条河流吗_环球观察
- 杭州娃哈哈童装有限公司_关于杭州娃哈哈童装有限公司简述
- 沧海2-世界最资讯
- iban number是什么_iban号码是什么
- 朱异字彦和文言文阅读答案_朱异
- 小善举、大力量!南通开发区实小集团星湖校区爱心义卖传递温暖|环球观点
- 环球报道:四十一斤等于多少千克_一斤等于多少千克
- win10配置java环境变量_win10设置java环境变量
- 世界简讯:September的缩写和意思_september的缩写
- 03月05日00时甘肃白银昨日累计报告阳性感染者确诊29例 怎么判断自己是否属于轻型感染者_环球热点评
- 环球微头条丨湿疹什么东西不能吃_得了湿疹不能吃什么
- 刘德华多大年龄病世_刘德华多大年龄|世界观速讯
- 国家大剧院管弦乐团2023中国巡演将启
- 每日视讯:北京3月4日交通预报:东西二环、东北三环等多地车多
- 专家:专项债拉动投资成效凸显 新基建领域增长空间大-观点
- 苏有朋歌曲视频现场版_苏有朋歌曲-全球简讯
- 自主创新“定制”骨骼助患者挺直脊梁
- 环球精选!《九霄寒夜暖》苏玖儿体寒
- 2012第五届中国广州优质大米展览会_微头条
- 教你怎么过没钱的日子_教你怎么购买QQ靓号|最新快讯
- 什么考虑?部分“小而美”基金闭门谢客|天天微资讯
- 湖南:第二批创新型中小企业名单 速看料
- 1.5平方铜线能带3000瓦吗_1 5平方铜线能带3000瓦
- 婴儿髋关节发育不良的症状_髋关节发育不良的症状|快资讯
- 湖南花垣:蚕桑产业在一线推进
- 环球快看:AUTOCAD工程绘图实训指导书
- 全球播报:报告称北溪管道爆炸严重危害海洋生物 杀死濒危鱼类或影响其繁殖
- 使用手机话费怎么充值Q币_手机话费如何充值q币
- 高盛(GS.US)暗示将进一步削减消费者业务 积极发展资管业务|环球新动态
- dendrite
- 焦点速讯:3月1日生意社磷酸二铵基准价为3980.00元/吨
X 关闭