环境配置

  • js文件https://code.google.com/archive/p/crypto-js/downloads
  • 在线AES加密解密地址http://tool.chacuo.net/cryptaes
  • 下载完成后在页面中引入
    • rollups/aes.js
    • components/mode-ecb.js
    • components/pad-nopadding.js
  • 引入后页面

    image.png

ECB加密解密

var key = CryptoJS.enc.Utf8.parse("zhgerXHBVaaKm8xy")
var plaintText = 'onlystar'
var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {mode: CryptoJS.mode.ECB,  padding: CryptoJS.pad.Pkcs7
})console.log("加密前:"+plaintText) // 加密前:onlystar
console.log("加密后:"+encryptedData) // 加密后:cp7hxlPgStaA4Jod5uKCuQ==encryptedData = encryptedData.ciphertext.toString()var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData)
console.log("解密前hex:"+encryptedHexStr) // 解密前hex:729ee1c653e04ad680e09a1de6e282b9
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr)
console.log("解密前:"+encryptedBase64Str) // 解密前:cp7hxlPgStaA4Jod5uKCuQ==
var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, { mode: CryptoJS.mode.ECB,  padding: CryptoJS.pad.Pkcs7
})var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8)
console.log("解密后:"+decryptedStr) // 解密后:onlystar

CBC加密解密

var key = CryptoJS.enc.Utf8.parse("zhgerXHBVaaKm8xy")
var plaintText = 'onlystar'
var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {iv:  CryptoJS.enc.Utf8.parse(key),mode: CryptoJS.mode.CBC,  padding: CryptoJS.pad.Pkcs7
})console.log("加密前:"+plaintText) // 加密前:onlystar
console.log("加密后:"+encryptedData) // 加密后:cp7hxlPgStaA4Jod5uKCuQ==encryptedData = encryptedData.ciphertext.toString()var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData)
console.log("解密前hex:"+encryptedHexStr) // 解密前hex:729ee1c653e04ad680e09a1de6e282b9
var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr)
console.log("解密前:"+encryptedBase64Str) // 解密前:cp7hxlPgStaA4Jod5uKCuQ==
var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, { iv:  CryptoJS.enc.Utf8.parse(key),mode: CryptoJS.mode.CBC,  padding: CryptoJS.pad.Pkcs7
})var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8)
console.log("解密后:"+decryptedStr) // 解密后:onlystar

封装方法

const DecryptEcb = (keyword, secretKey) => {try {let key = CryptoJS.enc.Utf8.parse(secretKey)let encryptedHexStr = CryptoJS.enc.Hex.parse(keyword)let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr)let decrypt = CryptoJS.AES.decrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.NoPadding })let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8)return decryptedStr.toString()} catch (error) {console.log(error)return ''}
}

使用

const { username, password, secretKey } = data
// 解密
const user = DecryptEcb(username, secretKey)
const pwd = DecryptEcb(password, secretKey)

Javascript实现AES加密解密(ECB/CBC)相关推荐

  1. AES加密解密(CBC模式)

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...

  2. C#的AES加密解密(ECB)

    测试网站:在线AES加密解密.AES在线加密解密.AES encryption and decryption 输出类型不同,则选择不同的获得byte数组方式 //base64     Byte[] e ...

  3. AES加密解密(ECB模式)

    高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES, ...

  4. php aes解密中文,PHP AES加密解密算法

    //--------第四种AES加密/解密方案 CBC模式,128-bit-------- /* * 实现AES加密 * $str : 要加密的字符串 * $keys : 加密密钥 * $iv : 加 ...

  5. aes加密算法python语言实现_C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现[转载]...

    原文:http://outofmemory.cn/code-snippet/35524/AES-with-javascript-java-csharp-python-or-php c#里面的AES加密 ...

  6. 理解AES加密解密的使用方法

    很多人对于AES加密并不是很了解,导致互相之间进行加密解密困难. 本文用简单的方式来介绍AES在使用上需要的知识,而不涉及内部算法.最后给出例子来帮助理解AES加密解密的使用方法. AES的麻烦 相比 ...

  7. C语言实现AES加密解密

    AES加密是美国联邦政府采用的一种块加密标准,如今已经被全世界广为使用.嵌入式开发中我们也经常会用到加密解密算法,如果没有硬件模块来实现,就需要用到C代码软件实现.下面介绍调用mbedTLS中的AES ...

  8. AES加密解密算法的C代码实现

     AES 加密解密的原理我就不说了, 弟兄们自己上百度去查, 文章很多. 我这里只列出从网上获取的代码的实现, 我修改了一些, 可以很方便的使用到你的代码里面. AES 比DES算法的强度更强.A ...

  9. AES加密解密(含python解析工具)

    url:https://web.ewt360.com/register/#/login 升学登录密码加密 aes简介: 密钥K:用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的.密钥为接 ...

最新文章

  1. HackTheGame 攻略 - 第三关
  2. 速查!你的身份证绑定了几个微信?
  3. 13、ActiveX控件
  4. Gartner分享物联网和智慧城市最新数据
  5. Gvim开发环境配置笔记--Windows篇
  6. 点击编辑,进入编辑页面并把值渲染到页面上
  7. 58. Attribute item() 方法
  8. 用C++ Builder对图像进行特殊效果处理
  9. 【数位dp】HDOJ2089:不要62( 真· 数位dp入门题目)
  10. 两级联动mysql怎样查询_我的二级联动下拉框(方便以后查询)
  11. 广州市出租车GPS数据(20210127)
  12. 基于JSP网上购书系统
  13. mantis修改mysql端口_Mantis配置指南
  14. RMQ---csu1809
  15. 今日全国油价查询2022-03-08
  16. php小说网站windows慢,终于找到WORDPRESS网站响应慢的罪魁祸首,你仅仅需要一个优化方案。...
  17. 查找谷歌浏览器中的Internet选项
  18. 社保管理系统连接不上服务器,社保费客户端登录服务器异常
  19. MAC电池更换经验-注意事项
  20. 机器学习隐私保护-MPC通用编译器

热门文章

  1. Milking Time【动态规划-dp】
  2. Spring Security源码分析四:Spring Social实现微信社交登录
  3. 《OpenStack云计算实战手册(第2版)》——1.7 添加用户
  4. 机器翻译软件从实验室走向市场
  5. 随机过程及其在金融领域中的应用 第三章 习题 及 答案
  6. SMTP 错误代码大全
  7. Visual C++ 2008入门经典 第四章数组 字符串
  8. RIP,EIGRP,OSPF融合网络互通实验(原创)
  9. 数字带通滤波器c语言程序,C语言编写FIR数字低通滤波器
  10. linux ssh-add,linux – 如何使ssh-add从文件读取密码?