每日热文:带你详细了解AES算法《附带java、vue实现》

2023-03-11 08:01:23 腾讯云


(资料图)

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

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位...

2023-03-11

每日时讯!舒尔美医用弹力袜

1、舒尔美弹力袜是北京康达人和科技有限公司旗下著名品牌。2、享有国家知识产权局授予的专利权。本文到...

2023-03-11

通讯!哈曼与法拉利达成战略合作,打造未来座舱体验

2023年1月13日,康涅狄格州斯坦福市——哈曼国际作为汽车领域先进的科技公司和三星电子有限公司旗下全资...

2023-03-11

环球热议:紫微洞景区_关于紫微洞景区介绍

1、看到“紫微洞”第一反应‘仙人’修炼居住的代名词,时常把那个仙境梦地镶嵌在这个名字之上。2、紫微...

2023-03-11

【全球时快讯】we2000逾期会联系村委吗?其实是催收人员在施加压力

有部分用户反馈,we2000逾期后收到了说联系村委的催收短信,那么we2000逾期会联系村委吗?下面,小编会...

2023-03-10

当前最新:该隐打卡修斯

1、《赛尔号第3季:光明的救赎》是由王章俊执导,淘米动画工作室出品的动画作品,于2014年5月16日播放,...

2023-03-10

天天热资讯!361dy2电影网泰国电影_361dy8电影网泰国电影

1、星爷的那么经典都不要林正英的僵尸片都可以东成西就推荐:吴孟达系列的喜剧新出的《向日葵》,《世界...

2023-03-10

微资讯!成都温江区人才驿站联系方式(附电话)

成都市温江区人才驿站联系地址:成都市温江区光华大道三段政和街38号联系电话共青团成都市委员会地址:...

2023-03-10

快讯:小麦除草剂有风可以打吗_小麦除草剂有哪些

1、北方最好的小麦田除草剂有:雀极有效成份氟唑磺隆是青岛众邦公司新近在全球推出的用于防治小麦杂草的...

2023-03-10

天天快看点丨远景s12019款_远景s1怎么样

1、从侧面看颜值非常的高,而且国产车一般性价比都很高,很低的价格,但是功能很全,安全性上可能会比德...

2023-03-10

环球热头条丨斗战胜佛的寓意和象征_斗战胜佛

1、斗战胜佛是佛教里面著名的“三十五佛”中的一位。2、《西游记》中经历了九九八十一难的孙悟空最后被...

2023-03-10

世界快消息!生辰五行查询_生辰八字查五行

1、一、命主出生情况姓氏:王性别:女出生时间:公历2012年11月30日2时18分农历:二○一二年十月十七日丑时生辰八

2023-03-10

天天实时:笔记本怎么重装系统win7?[多图]

笔记本重装系统一点也不难,如果不知道怎么重装系统的小伙伴可以看看小编的笔记本怎么重装系统win7。

2023-03-10

环球观天下!靖江两只小鸟飞进家中,疑似国家二级保护动物

3月8日上午11时许,靖江市公安局城南派出所接到热心居民刘女士报警称,有两只鸟飞进自己家中,疑似国家...

2023-03-09

每日焦点!03月09日15时河南郑州疫情数据 阳了以后为什么会腰疼?应该怎么办?

03月09日15时河南郑州疫情数据阳了以后为什么会腰疼?应该怎么办?以下为详情!一、03月09日15时郑州疫...

2023-03-09

看点:属于经停航班_经停航班是什么意思

1、航班经停,可以理解为中途停靠某地,到达某地乘客出站,某地同时会上一部分乘客(此时到过终点站的乘客不...

2023-03-09

【全球新视野】汕头经济适用房优惠政策指南

汕头经济适用房补贴标准是什么?汕头经济适用房补贴有哪些方式?汕头经济适用房怎么补贴?小编为你带来汕头...

2023-03-09

焦点日报:鹿衔草鉴别_鹿衔草

你们好,最近小活发现有诸多的小伙伴们对于鹿衔草鉴别,鹿衔草这个问题都颇为感兴趣的,今天小活为大家...

2023-03-09

【世界热闻】你打算买房吗市民不是非得买详细内容

大家好,小太来为大家解答以上问题。你打算买房吗?市民:不是非得买很多人还不知道,现在让我们一起来...

2023-03-09

焦点滚动:9521是什么电话_9521

1、保时捷9521  网络模式:GSM  外观设计:翻盖  主屏尺寸:2 2英寸320x240像  后置摄像头像素:3

2023-03-09

速读:公司问答丨招商轮船:海运指数持续波动 散货情况相对较好

今天早盘航运板块表现活跃,招商轮船盘中一度涨超9%。第一财经记者以投资者身份致电公司,工作人员表示...

2023-03-09

【热闻】“三八节”引爆鲜花市场,商贩通宵包花束,价格上涨销量不减

记者史安琪3月8日妇女节,济南鲜花市场内顾客络绎不绝。记者看到,在历山路一鲜花市场门口,七八个外卖...

2023-03-09

今日聚焦!沫沫啥意思_沫沫是什么意思

1、沫沫是皮卡亲里的小萌可爱制作的人物,来自于作者(小萌丑)的笔下。2、沫沫是作者笔下的一个萌萌哒...

2023-03-09

最资讯丨圣诞节前最好的厨房电器交易

我们在圣诞节前找到了最好的厨房用具交易。必备冰箱、洗衣机、烘干机和洗碗机的商店促销价。在假期前改...

2023-03-09

即时:3月8日基金净值:易方达平稳增长混合最新净值5.089,跌0.04%

3月8日,易方达平稳增长混合最新单位净值为5 089元,累计净值为6 434元,较前一交易日下跌0 04%。历...

2023-03-09

全球微动态丨辰时出生的男孩_辰时

1、古代一个时辰是现在的两个小时,辰时是指早上7点——9点,辰时初刻是从7点起算,那么辰时中应该是8点...

2023-03-08

全球聚焦:北京环球影城首批购票名额_北京环球影城首批购票名额开放

1、北京环球影城首批购票名额开放什么时候购票?10月21日零时,北京环球影城已开放优先购票名额,该名额...

2023-03-08

全球动态:柿子的功效与作用

1、柿子的功效与作用(1)止血凉血:柿子具有凉血止血的功效,不仅仅是柿子具有这样的功效,而且柿子叶...

2023-03-08

焦点速读:图片新闻|巴南:乱花渐欲迷人眼

2023年3月5日,巴南二圣云林天乡,市民们正在盛开的李花、油菜花及美人梅等组成的花海中踏青游玩,享受乡村...

2023-03-08

今日快讯:全国人大代表杨昌芹:让赤水竹编产业走出去

“赤水竹编既是文化,也是产业。只有把非遗文化资源转化为文化资产,打通销售渠道,才能让赤水竹编真正...

2023-03-08

最新发布
精彩图文
精彩推送

Copyright @  2015-2018 西南it网版权所有  备案号:皖ICP备2022009963号-8   联系邮箱:39 60 29 14 2@qq.com