(资料图片仅供参考)
不论前途如何,不管发生什么事情,我们都不失去希望,希望是一种美德。——《雨果传》
MD5
、SHA
等摘要算法,它们是不可逆的。双向加密包括对称加密和非对称加密。双向加密是可逆的,存在密文的密钥。对称加密是指加密和解密使用相同的密钥,包括AES
加密、DES
加密等。非对称加密是指加密和解密使用不同的密钥,包括RSA
加密等。是用来替代DES的新一代分组加密算法。AES支持三种长度的密钥:128位、192位、256位。AES:高级加密标准(Advanced Encryption Standard)是美国联邦政府采用的一种区块加密标准,是目前最流行的一种
对称加密算法
。
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加解密的流程:
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("没有此算法"); } }
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)); }
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
。
安装依赖
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()}
上一篇:当前看点!电焊工安全操作规程培训试卷_电焊工安全操作规程
下一篇:最后一页
AES的加解密过程和DES一样,都是通过分组加密、分组解密。所谓分组加密,就是将待加解密的内容按照128位...
1、电焊工安全操作规程电焊机外壳,必须有良好的接零或接地保护,其电源的装拆应由电工进行。2、电焊机...
1、韩企里的职位最小的是刚进公司的员工被称作社员代理课长:很多人翻译为科长,其实是错误的。2、应该...
春天去哪儿?去有油菜花的地方,衡阳县!
1、Uk表示变压器的阻抗电压,是指变压器的短路阻抗电压。2、变压器的阻抗电压(现在标准上的叫法为:《短...
以下是数码视讯在北京时间3月10日09:58分盘口异动快照:3月10日,数码视讯盘中涨幅达5%,截至9点58分,...
直落两盘横扫过关!华裔天才少女轻松晋级,澳网后首秀赢球,澳网,赛会,破发点,天才少女,拉杜卡努
1、你可以考虑下用用钢木门采用高档进口金属漆轿车烤漆工艺精制而成色泽更加纯厚亮丽不褪色耐用耐高温四...
1、楼主,我知道新华书店九月网的电子书很大部分是可以免费阅读的,其他收费的书籍也有免费试读章节,假...
1、蔡加颖为香港「玩具大王」蔡志明的二女。2、2003年07月06日在家中烧炭自杀死亡。本文就为大家分享到...
先惠技术:上海先惠自动化技术股份有限公司关于2022年度向特定对象发行A股股票的第二轮审核问询函回复和...
反世界毁灭战士广播活动简介:10月28日-11月7日。游戏持续了10分钟,世界毁灭战士拿到了。10月28日-11月7日,
南通网讯为让幼儿知恩感恩、表达爱意,让家长了解幼儿在园生活,近日,如皋市吴窑镇长庄幼儿园开展了“...
中新网平潭8月16日电(记者吕明)2022第十四届海峡论坛·海峡两岸跆拳道交流大赛在福建平潭举办,大陆赛区...
1、《iwannabetheguy》游戏很适合男人的个性,将勇敢与坚毅的爷们情节表现的非常完美,你将在虚拟世界成
1、美国的感恩节日期:每年11月第四个星期的星期四。2、比如,2016年美国感恩节的日期为11月24日3、虽然...
据日本媒体3月9日报道,日本首相岸田文雄8日在接受媒体采访时表示,福岛第一核电站核污染水具体排海时间...
“晴天一身土,雨天一身泥”“村子里没有什么人气儿”生态治理前,位于北京门头沟区的炭厂村,村如其名...
智通财经APP获悉,招商证券发布研究报告称,2月体现调研行情,复苏主线热情和风险偏好抬升,市场聚焦公...
1、首句 "杨花落尽子规啼 ",是写李白 "闻王昌龄左迁 "时的暮春景象。2、 "杨花落尽 "写出了春光...
3月8日,南方新优享灵活配置混合A最新单位净值为3 461元,累计净值为3 461元,较前一交易日下跌0 03%...
1、建议:乳酸菌素片是由脱脂牛乳经嗜酸性乳酸杆菌发酵制成的粉末压制成的片子 属于乳酸菌(死菌)及其...
中国联合网络通信股份有限公司(下称“中国联通”,600050)扣非净利润规模创公司上市以来新高。3月8日,...
元力股份12月29日公告,深交所对公司原持股5%以上股东林志强给予通报批评的处分。根据公司于2022年9月18...
该小说是《仙武帝尊》又名《神武仙踪》,作者:六界三道。讲述的是门派废徒叶辰的逆天征途,叶辰本是正...
广告
X 关闭
广告
X 关闭