带你详细了解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、考生号全国统一是14位的,其中前两位是年份代码,3~8位是考区代码,第9位是秋季高考代码,普通高考代码为“1”,第1
世界观焦点:3月9日纳睿雷达(688522)龙虎榜数据:机构净买入1.54亿元
沪深交易所2023年3月9日公布的交易公开信息显示,纳睿雷达(688522)因有价格涨跌幅限制的日换手率达到30%的前五
中国经济复苏振奋人心 外资企业期待下半年有一个扎扎实实的反弹 天天热门
当疫情的迷雾逐渐消散,2023年中国经济终于迎来了复苏的信号。朗盛亚太区总裁钱明诚用四个字来形容这一趋势——“振奋人心”。
1月新疆跨境电商进出口额同比增118.9%
记者从新疆维吾尔自治区商务厅获悉:1月新疆跨境电商进出口额8 1亿元,同比增长118 9%。今年以来,新疆各地积极推进外贸新业态、新模式创新发
环球今亮点!03月09日09时河南信阳疫情数据 阳了以后为什么会腰疼?应该怎么办?
03月09日09时河南信阳疫情数据阳了以后为什么会腰疼?应该怎么办?以下为详情!一、03月09日09时信阳疫情数据概览
六十四卦风水罗盘图片_六十四卦风水罗盘图|最新
1、八宅派之六十四卦风水断法一中国风水罗盘…————八宅派不用六十四卦。2、八宅派用六十仙命,定东四命,西四命,确定什么
8场比赛每场都有失球,为巴黎队史15次参加欧冠以来首次出现-当前热讯
8场比赛每场都有失球,为巴黎队史15次参加欧冠以来首次出现,欧冠,巴黎,拜仁,陈皮,失球,冠军奖杯,2022-23赛季欧冠抽签
国药(SHTDF.US)3月8日收盘报2.75美元/股 播报
截至2023年3月8日(美国东部时间)收盘,国药(SHTDF US)报收于2 75美元 股,上涨0 0%,成交量0 0股。
铜包钢接地极_关于铜包钢接地极的基本详情介绍
1、铜包钢接地导体(采用包覆工艺)型号:RT-RP电铸铜包钢接地导体(采用电铸工艺)型号:RT-EF水平连铸铜包钢接
寒冰射手怎么玩的舒服_寒冰射手怎么玩
1、雪豆艾希一般会带一个辅助队员下路,充当下路的主攻力量。2、由于雪豌豆艾西前期攻速差,前期装备以攻速为主。一般先把狂战
送男友什么礼物好开心_送男友什么礼物好 全球热文
1、驳船2、可以送男朋友一个名牌打火机。如果你男朋友正好抽烟,那就派上用场了。抽烟对一个男人来说是最正常不过的事情,这样
小孩子胆小怕鬼怕黑怎么办_怕黑怎么办
1、我原来也胆小,因为几乎所有的鬼片我全看了,而且,最可怕的是,我不是无神论者。2、后来,我改变了想法后,就不怕了。3、
快看点丨儿童散学归来早的下一句
1、儿童散学归来早下一句:忙趁东风放纸鸢。出自《村居》,[作者]高鼎,草长莺飞二月天,拂堤杨柳醉春烟。儿童散学归来早,忙趁东风放纸鸢。2
手机无法开机怎么刷机教程视频_手机无法开机怎么刷机
1、不管能不能开机,如果能显示,不能连接上电脑。2、就一定能刷机,开始我的白苹果也是,开机就显示白苹果。3、连电脑都连接
lumpur什么意思
lumpur的意思是吉隆坡,简称“隆市”或“KL”,是马来西亚的首都兼最大城市。吉隆坡是一座对东南亚的文化、教育、体育、财政、经济、商业、...
41家公司公布年度分红方案
年报分红季来临,共有41家公司公布了分配方案,其中分配方案中涉及派现的有40家,包含送转的有11家。证券时报·数据宝统计显示,从派现金额看
城堡对冲基金掌门人:美国经济衰退将至,鲍威尔是“拿着钝刀做手术”|微资讯
Griffin表示,他会建议鲍威尔在通胀问题“少说点……每次当他们把脚从刹车板上移开,或者当市场感觉他们不会猛踩刹车,而实际上工作又没有...
环球快看点丨前妻要求阿里扎每月支付5.5万美元赡养费,阿里扎拒绝表示已经失业
前NBA球员特雷沃-阿里扎与前妻布里-安德森(BreeAnderson)的婚姻已经彻底崩裂,安德森在2022年已经申请了离婚。两人目前已经对峙法庭,失业的
杭州宏娅服饰有限公司_关于杭州宏娅服饰有限公司简述
1、杭州宏娅服饰有限公司于2017年11月13日成立。2、法定代表人徐樟古,公司经营范围包括:批发、零售:服饰服装,箱包鞋帽,针纺织品,皮革制
蝴蝶的特点是什么 播报
1、蝴蝶全身色彩鲜艳,它们的身上有好多条纹,翅膀和身体上有各种花斑,头部位长有一对棒状或锤状的触角,有两对翅、三对足。2、在头部有一对
【全球聚看点】迎春花开黄花朵朵张开小嘴巴(迎春花开)
1、迎春花开了,全身黄灿灿的,远远望去,好像一片片小金叶。2、2、迎春花开了,春风吹来,迎春花摆动着柔软的枝条,像在空中跳起欢快的舞蹈。