品牌 资讯 搭配 材料 时尚 热点 行业 首饰 玉石 行情

带你详细了解AES算法《附带java、vue实现》

2023-03-09 21:05:34 来源:腾讯云


(资料图片)

不论前途如何,不管发生什么事情,我们都不失去希望,希望是一种美德。——《雨果传》

1.加密算法

在密码学中,加密算法分为单向加密和双向加密。单向加密包括MD5SHA等摘要算法,它们是不可逆的。双向加密包括对称加密和非对称加密。双向加密是可逆的,存在密文的密钥。对称加密是指加密和解密使用相同的密钥,包括AES加密、DES加密等。非对称加密是指加密和解密使用不同的密钥,包括RSA加密等。

2.AES介绍

AES:高级加密标准(Advanced Encryption Standard)是美国联邦政府采用的一种区块加密标准,是目前最流行的一种对称加密算法

是用来替代DES的新一代分组加密算法。AES支持三种长度的密钥:128位、192位、256位。

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加解密的流程:

AddRoundKey (轮密钥加)— 矩阵中的每一个字节都与该次轮密钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。SubBytes(字节替代) — 通过非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。ShiftRows(行移位) — 将矩阵中的每个横列进行循环式移位。MixColumns (列混淆)— 为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每列的四个字节。

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

2023-03-09 21:05:34

当前要闻:国宝迅雷下载

​1、国家宝藏1 BD国英双语中英双字1024高清(1)种子下载地址:种子链接在此。2、有问题追问。本文到此分享完毕,希望

2023-03-09 20:04:58

【天天热闻】考生号是什么是准考证号吗_考生号是什么

​1、考生号全国统一是14位的,其中前两位是年份代码,3~8位是考区代码,第9位是秋季高考代码,普通高考代码为“1”,第1

2023-03-09 18:47:19

世界观焦点:3月9日纳睿雷达(688522)龙虎榜数据:机构净买入1.54亿元

​沪深交易所2023年3月9日公布的交易公开信息显示,纳睿雷达(688522)因有价格涨跌幅限制的日换手率达到30%的前五

2023-03-09 16:51:03

中国经济复苏振奋人心 外资企业期待下半年有一个扎扎实实的反弹 天天热门

​当疫情的迷雾逐渐消散,2023年中国经济终于迎来了复苏的信号。朗盛亚太区总裁钱明诚用四个字来形容这一趋势——“振奋人心”。

2023-03-09 15:02:07

每日快报!kdm顺丰官网

​1、去顺丰快递官网投诉。2、投诉电话是95338,试试你可以拔打0755-8315111140081111111投诉顺丰

2023-03-09 14:49:28

1月新疆跨境电商进出口额同比增118.9%

​记者从新疆维吾尔自治区商务厅获悉:1月新疆跨境电商进出口额8 1亿元,同比增长118 9%。今年以来,新疆各地积极推进外贸新业态、新模式创新发

2023-03-09 13:14:58

环球今亮点!03月09日09时河南信阳疫情数据 阳了以后为什么会腰疼?应该怎么办?

​03月09日09时河南信阳疫情数据阳了以后为什么会腰疼?应该怎么办?以下为详情!一、03月09日09时信阳疫情数据概览

2023-03-09 11:14:46

六十四卦风水罗盘图片_六十四卦风水罗盘图|最新

​1、八宅派之六十四卦风水断法一中国风水罗盘…————八宅派不用六十四卦。2、八宅派用六十仙命,定东四命,西四命,确定什么

2023-03-09 09:08:30

8场比赛每场都有失球,为巴黎队史15次参加欧冠以来首次出现-当前热讯

​8场比赛每场都有失球,为巴黎队史15次参加欧冠以来首次出现,欧冠,巴黎,拜仁,陈皮,失球,冠军奖杯,2022-23赛季欧冠抽签

2023-03-09 09:03:50

国药(SHTDF.US)3月8日收盘报2.75美元/股 播报

​截至2023年3月8日(美国东部时间)收盘,国药(SHTDF US)报收于2 75美元 股,上涨0 0%,成交量0 0股。

2023-03-09 05:59:34

铜包钢接地极_关于铜包钢接地极的基本详情介绍

​1、铜包钢接地导体(采用包覆工艺)型号:RT-RP电铸铜包钢接地导体(采用电铸工艺)型号:RT-EF水平连铸铜包钢接

2023-03-09 00:06:38

寒冰射手怎么玩的舒服_寒冰射手怎么玩

​1、雪豆艾希一般会带一个辅助队员下路,充当下路的主攻力量。2、由于雪豌豆艾西前期攻速差,前期装备以攻速为主。一般先把狂战

2023-03-08 23:18:35

伏波春色 世界热讯

​伏波春色

2023-03-08 20:25:28

送男友什么礼物好开心_送男友什么礼物好 全球热文

​1、驳船2、可以送男朋友一个名牌打火机。如果你男朋友正好抽烟,那就派上用场了。抽烟对一个男人来说是最正常不过的事情,这样

2023-03-08 19:24:29

小孩子胆小怕鬼怕黑怎么办_怕黑怎么办

​1、我原来也胆小,因为几乎所有的鬼片我全看了,而且,最可怕的是,我不是无神论者。2、后来,我改变了想法后,就不怕了。3、

2023-03-08 18:02:13

快看点丨儿童散学归来早的下一句

​1、儿童散学归来早下一句:忙趁东风放纸鸢。出自《村居》,[作者]高鼎,草长莺飞二月天,拂堤杨柳醉春烟。儿童散学归来早,忙趁东风放纸鸢。2

2023-03-08 15:50:44

手机无法开机怎么刷机教程视频_手机无法开机怎么刷机

​1、不管能不能开机,如果能显示,不能连接上电脑。2、就一定能刷机,开始我的白苹果也是,开机就显示白苹果。3、连电脑都连接

2023-03-08 16:00:21

街的部首的读法

​一、关于街的部首的读法1、读法:[jiē]二、关于街的部首的释义2、基础释义:街道,两旁有房屋的比较宽阔的道路:大~

2023-03-08 13:41:06

莱阳市 快讯

​1、莱阳,山东省烟台市代管县级市,名称来自于“日月出东莱之阳”。2、古为“昌阳”、“长广”,又有“梨城”、“龙城”的称号

2023-03-08 12:59:29

涉外婚姻要注意哪些事项-全球微动态

​一、涉外婚姻要注意哪些事项涉外婚姻要注意的事项如下:1 熟悉有关法律。涉外婚姻的当事人可能是不同国籍的人或者双方虽然是同

2023-03-08 10:57:14

lumpur什么意思

​lumpur的意思是吉隆坡,简称“隆市”或“KL”,是马来西亚的首都兼最大城市。吉隆坡是一座对东南亚的文化、教育、体育、财政、经济、商业、...

2023-03-08 09:50:06

41家公司公布年度分红方案

​年报分红季来临,共有41家公司公布了分配方案,其中分配方案中涉及派现的有40家,包含送转的有11家。证券时报·数据宝统计显示,从派现金额看

2023-03-08 09:25:05

城堡对冲基金掌门人:美国经济衰退将至,鲍威尔是“拿着钝刀做手术”|微资讯

​Griffin表示,他会建议鲍威尔在通胀问题“少说点……每次当他们把脚从刹车板上移开,或者当市场感觉他们不会猛踩刹车,而实际上工作又没有...

2023-03-08 07:01:59

面基是什么意思

​“面基”是网络流行语,这个词一般在二次元的朋友之间使用,就是见面会,两个基友相遇的意思。比如两人都在一个动漫群里,但只是网友,却从...

2023-03-08 06:14:57

环球快看点丨前妻要求阿里扎每月支付5.5万美元赡养费,阿里扎拒绝表示已经失业

​前NBA球员特雷沃-阿里扎与前妻布里-安德森(BreeAnderson)的婚姻已经彻底崩裂,安德森在2022年已经申请了离婚。两人目前已经对峙法庭,失业的

2023-03-08 01:54:20

电影监制是什么意思

​1、电影监制又称制作人或制片,职务是管理整个电视或电影拍片流程相关环节的一切工作,如工作人员的寻找与协调,预算的控制,拍摄时间的进度等

2023-03-07 22:51:39

杭州宏娅服饰有限公司_关于杭州宏娅服饰有限公司简述

​1、杭州宏娅服饰有限公司于2017年11月13日成立。2、法定代表人徐樟古,公司经营范围包括:批发、零售:服饰服装,箱包鞋帽,针纺织品,皮革制

2023-03-07 21:53:16

蝴蝶的特点是什么 播报

​1、蝴蝶全身色彩鲜艳,它们的身上有好多条纹,翅膀和身体上有各种花斑,头部位长有一对棒状或锤状的触角,有两对翅、三对足。2、在头部有一对

2023-03-07 19:09:49

【全球聚看点】迎春花开黄花朵朵张开小嘴巴(迎春花开)

​1、迎春花开了,全身黄灿灿的,远远望去,好像一片片小金叶。2、2、迎春花开了,春风吹来,迎春花摆动着柔软的枝条,像在空中跳起欢快的舞蹈。

2023-03-07 18:59:58