带你详细了解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实现》AES的加解密过程和DES一样,都是通过分组加密、分组解密。所谓分组加密,就是将待加解密的内容按照128位进行分组,将密钥按照128位、192位、25
-
第四届全国临床检验诊断学和医学检验技术研究生学术论坛参会注册已开始!这篇参会攻略一定不要错过! 今日热搜经过四年累积,全国临床检验诊断学和医学检验技术研究生学术论坛已发展成为检验学子展现成果、分享创新、交流碰撞的高质量学术盛会。本次论坛
-
花开不记年广播剧_花开不记年 今日要闻1、只记花开不记年逝水流年是一个人所能拥有的一切,只有这个东西,才真正归你所有。2、其余的一切都是片刻的欢娱和不幸,转眼
-
天天快资讯:结对子!邯郸市十一中与临漳县章里集中学建立对口帮扶结对子!邯郸市十一中与临漳县章里集中学建立对口帮扶
-
当前头条:力争2026年工业总产值超3万亿元!佛山发布“制造业当家”行动指南“当前,国家和广东正聚焦制造业、大抓制造业,佛山迎来重大机遇,也必须扛起重大责任,紧紧抓住高质量发展这个首要任务,巩固提升制造业在...
-
环球最新:69岁男子和45岁女子谈恋爱,签订“家规”约束彼此,女子提分手男子不愿意:只要不离开我给你一套房69岁男子通过相亲和45岁女子谈起了恋爱,男子约定,两人只谈恋爱不结婚,但是,需要签订一份家规,来约束彼此的日常行为。男子声称,前前后后
-
速看:斗罗大陆唐昊打武魂殿哪一集下说_斗罗大陆唐昊打武魂殿哪一集1、在第十四集。2、103010是唐三少通过玄幻小说创作的小说,首发于起点。3、003010讲述了穿越到斗罗大陆的唐三如
-
福岛滞销大米被制成餐具和包装盒具体详细内容是什么 每日快讯福岛滞销大米被制成餐具和包装盒今天的热度非常高,现在也是在热搜榜上了,那么具体的福岛滞销大米被制成餐具和包装盒是什么情况
-
世界热议:中国足彩网竞彩11日推荐:诺丁汉森林恐遭惨败英超:托特纳姆热刺VS诺丁汉森林时间:2023-03-1123:00场地:托特纳姆热刺球场作为英超豪门之一的热刺相较于上个赛季,在本赛季发挥依旧很平稳
-
戊己杏黄旗1、盘古三清,洪荒流小说虚拟出来的称号,其原型出自道教神话中的三清尊神。2、是以许仲琳的《封神演义》为题材改编而成。本文
-
速递!小黑瓶和小棕瓶哪个是肌底精华_小黑瓶和小棕瓶哪个好1、从第一眼看到这两款产品开始,如果只是瓶身有分数的话,我更喜欢小黑瓶。黑银色的外观质感玻璃瓶身强行展现,而小棕瓶的方脸
-
关于热爱生命的美文_关于热爱生命的资料1、夏天不知不觉就过去了,秋天轻轻地来到了人间。这个时候,你有没有注意到这些草?当风轻轻吹来的时候,它们把身体扭向一边,用优美的舞蹈向
-
胃功能三项检查是什么检查(胃功能三项检查是什么) 速递1、胃功能三项检查是一项血抽血检查,是准确诊断早期胃癌的利器。2、它的检查项目主要包括血清胃泌素(G-17)、胃蛋白酶1和胃蛋白酶2,三项。3
-
吴志浩全部电影_吴志浩_当前快播1、2002年KBS《猎阳 猎取阳光》(又名:寻求阳光)(客串池城初恋《爱情的《新进职员 新职员 新进社员》(主演
-
扎马步读音_扎马步-独家1、我是一名武术裁判习武多年,我告诉你扎马步要领:两脚与肩同宽、脚尖内扣膝盖外冲,五趾抓地,大腿与小腿呈90度,膝盖不能超过脚尖,挺胸塌
-
太原樱花在哪里看?(8个好去处)太原看樱花的地方:1、文瀛公园,地址:山西省太原市海子边东街99号太原文瀛公园2、漪汾公园,地址:太原市万柏林区千峰北路883、街心公园青年
-
雅安之窗1、雅安之窗是雅安市政府对外发布政务信息的权威政府门户网站。2、由共雅安市委雅安市人民政府主办。3、雅安市委市政府电子
-
天天热推荐:港股午评:恒生指数跌2.46% 新能源汽车股集体大跌金融界3月10日消息今日早盘,港股市场低开后震荡走弱,截至午间收盘,恒生指数跌2 46%,报19434 84点,恒生科技指数跌3 61%,报3788 93点,
-
乔安云监控价格与图片(乔安云监控安装)_天天观热点1、确定摄像机的安装位置和监控区域,将摄像机通过摄像机支架固定到建筑物或监控立杆上;2、确定后台设备(硬盘录像机和显示器)的摆放位置,
-
【期货早报】油价上演过山车走势 拜登提出新财年预算案 要征25%“富豪税”【期货早报】油价上演过山车走势,布油跌超1%;拜登提出新财年预算案,要征25%“富豪税”;全球央行继续抢黄金,环比暴增192%,详情>>>
-
全球观天下!58发布信息审核多久_58发布信息1、先在百度上搜索“58同城”,然后在搜索结果页面找到官网的58同城,点击进入。(如下图所示)2、进入58同城首页,点击
-
叙利亚总统阿萨德会见到访的伊朗外长阿卜杜拉希扬【叙利亚总统阿萨德会见到访的伊朗外长阿卜杜拉希扬】财联社3月10日电,据叙利亚总统办公室消息,当地时间3月9日,叙利亚总
-
消息!盘它是什么意思网络用语(盘它是什么意思)1、在网络媒体中“盘它”的意思更多,有撩、捉弄、整蛊等等含义,如碰到一个妹子,如果说盘她就有撩妹的意思。2、“盘”字在文玩领域中指通...
-
今日快讯:Live_Photos怎么开启?iPhone6s/6s Plus手机Live Photos使用教程当我们用iPhone6s 6sPlus拍照时,设备会自动录制3秒的视频。这个功能是默认开启的,也就是说用户可以像以前
-
为何关闭官方网站销售数据?天佑德酒:没有科学严谨的数据支撑 世界热讯3月9日,天佑德酒在投资者关系平台上答复投资者关心的问题时表示,公司有劲酒从业经历的高管,均为从劲酒离职后入职我公司,属
-
小鹏汽车核心高管大换血,波及联合创始人近日获悉,小鹏汽车多名核心高管处于已离职或者将离职状态。其中,动力总成副总裁刘明辉已经离职,接替他的是零部件公司德尔福的前技术高管顾
-
全球快播:百亿美元补贴诱惑下“弃欧投美”?大众或优先考虑在美建厂在近百亿欧元补贴“诱惑”下,欧洲最大汽车制造商——大众汽车集团(下称“大众”)动摇了。当地时间8日,大众表示,正在等待欧
-
快资讯丨他变了作文500字五年级下册优秀_他变了作文500字1、她原来是一个活泼、开朗、成绩优异的学生,可不知道这个学期怎么回事竟然成绩一落千丈,也变得沉默寡言起来。2、 她叫X
-
迈尼昂:我们每年都以欧冠为目标|今日快讯3月9日讯在今天凌晨进行的欧冠1 8决赛次回合,米兰客场0-0热刺,两回合总比分1-0成功晋级欧冠八强。赛后米兰门将迈尼昂接受了采访。迈尼昂首先
-
家中挂什么最旺 山水画挂客厅招财旺运 每日快报大多数人家都会在家里摆放一些旺运的吉祥物,比如发财树、金蟾、五帝钱、葫芦等等,这些具有气运作用的摆件可以催旺住宅当中的气运气场。而且