天天视讯!带你详细了解AES算法《附带java、vue实现》
2023-03-10 09:03:46 来源:腾讯云
(资料图片仅供参考)
不论前途如何,不管发生什么事情,我们都不失去希望,希望是一种美德。——《雨果传》
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实现》
-
【天天播资讯】奥运冠军隋文静和大山女孩分享“哭”
-
科目二未审核是什么意思_未审核是什么意思
-
看热讯:皇马官方:不配合欧足联的欧冠决赛门票退款方案,将协助球迷索赔
-
2022年日本年轻人净流入东京都人口比10年前增47%
-
世界杯中国对乌兹别克斯坦比赛时间_国足对乌兹别克斯坦直播地址
-
北水动向|北水成交净买入6.15亿 内资继续追捧电信股 加仓中移动(00941)超4亿港元
-
明日方舟--博士,这就是信赖接触吗?(夜莺)
-
三个月定期存款利率2022,分为以下四种利率
-
菡萏再开 人厮守是什么歌_菡 全球消息
-
天天热资讯!共建不受HPV困扰的美好未来,首场公益健康沙龙落地上海
-
基于FMEs超级架构打造 红旗发布E702车型官图
-
三屏两地一线牵丨文明探源 河南大有可为|观热点
-
嘉定震川中学中考录取率有多少_嘉定震川中学-今日热议
-
安徽省市场监管局局长韩永生代表:加强地理标志保护和运用-视讯
-
全球最资讯丨石鳞鳗哪里多-石鳞鳗有什么用
-
贵州一中分数线是多少_一中分数线是多少
-
异动快报:凯盛科技(600552)2023年03月08日15时00分触及涨停板
-
windows7系统电脑字体怎么设置_电脑字体怎么设置
-
灯火阑珊比喻爱情什么意思_灯火阑珊比喻什么-环球观察
推荐内容
- 天天视讯!带你详细了解AES算法《附带java、vue实现》
- 【天天播资讯】奥运冠军隋文静和大山女孩分享“哭
- 科目二未审核是什么意思_未审核是什么意思
- 看热讯:皇马官方:不配合欧足联的欧冠决赛门票退
- 2022年日本年轻人净流入东京都人口比10年前增47%
- 世界杯中国对乌兹别克斯坦比赛时间_国足对乌兹别
- 北水动向|北水成交净买入6.15亿 内资继续追捧电
- 明日方舟--博士,这就是信赖接触吗?(夜莺)
- 三个月定期存款利率2022,分为以下四种利率
- 菡萏再开 人厮守是什么歌_菡 全球消息
- 天天热资讯!共建不受HPV困扰的美好未来,首场公
- 基于FMEs超级架构打造 红旗发布E702车型官图
- 三屏两地一线牵丨文明探源 河南大有可为|观热点
- 嘉定震川中学中考录取率有多少_嘉定震川中学-今日
- 安徽省市场监管局局长韩永生代表:加强地理标志保
- 全球最资讯丨石鳞鳗哪里多-石鳞鳗有什么用
- 贵州一中分数线是多少_一中分数线是多少
- 异动快报:凯盛科技(600552)2023年03月08日15时
- windows7系统电脑字体怎么设置_电脑字体怎么设置
- 灯火阑珊比喻爱情什么意思_灯火阑珊比喻什么-环球
- 天天热点!026期彩鱼双色球预测奖号:012路走势分析
- 全球快讯:今天新乡辉县大风是地震的前兆吗
- 吉利联合中科创达共设汽车软件科技新公司
- 面漆定义的介绍,它与底漆的不同之处是什么?
- 鸭蛋的功效与作用适合什么样的人吃(鸭蛋的功效与
- 开局之年“hui”蓝图丨AIGC带你穿越山海 体验一
- 天福号
- 高通骁龙865手机性价比高有哪些(高通骁龙865手机
- lol石头人
- 热推荐:本田猛鸷190摩托车价格及参数图_本田猛鸷
- 播报:张世豪原型
- 今年武汉樱花花期预报出炉:下周开放,约 17 天
- 华安基金:金价反弹 关注后续重要数据披露-焦点
- 【世界速看料】冯提莫会计事件是什么
- 动态:人民币超过美元!成为这里交易量最大货币…
- 惠尔康|全球今日讯
- 速讯:3月7日国内黄金期货涨0.44%
- 当前视点!回乡证可以在珠海横琴口岸信息采集吗?
- 狂潮|精彩看点
- 单位工资证明模板_单位工资证明怎么开
油气
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
经济
-
1、生平释义:一个人生活的整个过程;一辈子。有生以来;平生。2、出自:清吴趼人《二十年目睹之怪现状》第二二回:那天凭空受了伯述的一席话
-
中新网杭州10月18日电 (王题题 胡燕婕)云天收夏色,浅秋正渐浓。10月18日,浙江杭州市西湖游船有限公司推出的惠民多站点“西湖环湖游
-
中国税务机关处罚一名艺人经纪人 中新社北京10月18日电 (记者 赵建华)上海市税务局第一稽查局前期在艺人郑爽偷逃税案件检查过程中
-
中新网福州10月18日电 (记者 龙敏 王东明)福州市晋安区官方18日晚间通报,18日14时47分,晋安区岳峰镇化工路爱摩轮商业广场项目摩天
-
中新网兰州10月18日电 (闫姣 艾庆龙 吉翔)“红山白土头,黄河向西流。”不少人疑问,天下黄河向东流,为何甘肃永靖县这段黄河却向西