网站首页 > 技术文章 正文
AES 简介
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称高级加密标准Rijndael加密法,
是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界
所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日
发布于FIPS PUB197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密
中最流行的算法之一。该算法为比利时密码学家Joan Daemen和VincentRijmen所设计,结合两位作者的名
字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于 “Rhinedoll”。)
AES加密模式和填充方式(其实还有还几种填充方式没写上,开始时候也在这里绕了一下)
算法/模式/填充 —————-16字节加密后数据长度 ——不满16字节加密后长度
AES/CBC/NoPadding ——-16 ——————————-不支持
AES/CBC/PKCS5Padding ——-32 ——————————-16
AES/CBC/ISO10126Padding ——-32 ——————————-16
AES/CFB/NoPadding ——-16 ——————————-原始数据长度
AES/CFB/PKCS5Padding ——- 32 ——————————-16
AES/CFB/ISO10126Padding ——-32 ——————————-16
AES/ECB/NoPadding ——-16 ——————————-不支持
AES/ECB/PKCS5Padding ——-32 ——————————-16
AES/ECB/ISO10126Padding ——-32 ——————————- 16
AES/OFB/NoPadding ——-16 ——————————-原始数据长度
AES/OFB/PKCS5Padding ——- 32 ——————————-16
AES/OFB/ISO10126Padding ——- 32 ——————————-16
AES/PCBC/NoPadding ——-16 ——————————-不支持
AES/PCBC/PKCS5Padding ——-32 ——————————- 16
AES/PCBC/ISO10126Padding ——-32 ——————————-16
更多关于加密模式内容:http://blog.sina.com.cn/s/blog_679daa6b0100zmpp.html
Javascript端代码:
<script src="aes.js"></script>
<script src="pad-zeropadding.js"></script>
<script>
var data = "Test String";
var key = CryptoJS.enc.Latin1.parse('1234567812345678');
var iv = CryptoJS.enc.Latin1.parse('1234567812345678');
//加密
var encrypted = CryptoJS.AES.encrypt(data,key,{iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding});
document.write(encrypted.ciphertext);
document.write('<br/>');
document.write(encrypted.key);
document.write('<br/>');
document.write(encrypted.iv);
document.write('<br/>');
document.write(encrypted.salt);
document.write('<br/>');
document.write(encrypted);
document.write('<br/>');
//解密
var decrypted = CryptoJS.AES.decrypt(encrypted,key,{iv:iv,padding:CryptoJS.pad.ZeroPadding});
console.log(decrypted.toString(CryptoJS.enc.Utf8));
</script>
第二种:
//AES-128-CBC加密模式,key需要为16位,key和iv可以一样
function encrypt(data) {
var key = CryptoJS.enc.Latin1.parse('dufy20170329java');
var iv = CryptoJS.enc.Latin1.parse('dufy20170329java');
return CryptoJS.AES.encrypt(data, key, {iv:iv,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.ZeroPadding}).toString();
}
Vue中 使用 CryptoJS 完成加密
// 引入aes加密
import CryptoJS from 'crypto-js'
Vue.prototype.$crypto = CryptoJS;
// Encrypt CryptoJS.pad.Pkcs7
var key = this.$crypto.enc.Utf8.parse('xxxxx'); // 与后台统一
var iv = this.$crypto.enc.Utf8.parse('16-Bytes--String'); // 与后台统一
var ciphertext = this.$crypto.AES.encrypt(data, key,{
iv:iv,
mode:this.$crypto.mode.CBC, // 根据上面得对应模式修改
padding:this.$crypto.pad.Pkcs7 // 根据上面对应模式修改
}).toString();
猜你喜欢
- 2025-05-24 网络信息安全之敏感信息在传输、显示时如何加密和脱敏处理
- 2025-05-24 常见加密方式及Python实现
- 2025-05-24 pdf怎么加密
- 2025-05-24 aes256 加密 解密 (python3) 「二」
- 2025-05-24 深入理解Python3密码学:详解PyCrypto库加密、解密与数字签名
- 2025-05-24 Springboot实现对配置文件中的明文密码加密
- 2025-05-24 JavaScript常规加密技术
- 2025-05-24 信息安全人人平等 谷歌推出低性能安卓手机加密技术
- 2025-05-24 SpringBoot与Jasypt整合,实现数据库字段自动加密解密功能
- 2025-05-24 安全性能爆表!Win10 TH2引入XTS-AES加密算法
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 601℃几个Oracle空值处理函数 oracle处理null值的函数
- 593℃Oracle分析函数之Lag和Lead()使用
- 581℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 578℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 573℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 566℃【数据统计分析】详解Oracle分组函数之CUBE
- 552℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 547℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)