AES算法

简介: AES算法

安装

npm i crypto-js --save

使用方式

import CryptoJS from 'crypto-js'

const crypt_key = 'abcdefgabcdefg12'
const crypt_iv = 'abcdefgabcdefg12'

// 加密
export function encrypt(data) {
  // 将key解析为字节
  const aes_key = CryptoJS.enc.Utf8.parse(crypt_key)
  // 将iv解析为字节
  const new_iv = CryptoJS.enc.Utf8.parse(crypt_iv)
  // AES加密 CBC模式 ZeroPadding
  const encrypted = CryptoJS.AES.encrypt(data, aes_key, {
    iv: new_iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.ZeroPadding
  })
  // 返回字符串
  return encrypted.toString()
}

// 解密
export function decrypt(data) {
  const aes_key = CryptoJS.enc.Utf8.parse(crypt_key)
  const aes_iv = CryptoJS.enc.Utf8.parse(crypt_iv)
  // 将数据编码成Base64格式
  const baseResult = CryptoJS.enc.Base64.parse(data)
  const ciphertext = CryptoJS.enc.Base64.stringify(baseResult)
  // AES解密 CBC模式 ZeroPadding
  const decryptResult = CryptoJS.AES.decrypt(ciphertext, aes_key, {
    iv: aes_iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.ZeroPadding
  })
  // 返回字符串
  const resData = decryptResult.toString(CryptoJS.enc.Utf8).toString()
  return resData
}

测试

const ps = JSON.stringify({ poolareaNo: '4401' })
const encodePs = encrypt(ps)
const decodePs = decrypt(encodePs)
console.log('encodePs', encodePs)
// 输出:AA2uUXaD4p/s6HcPbX3CGw==
console.log('decodePs', decodePs)
// 输出:123456
相关文章
|
6月前
|
算法 Java
Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
588 0
|
11天前
|
存储 安全 算法
AES算法
【10月更文挑战第30天】AES算法
24 2
|
1月前
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
69 0
|
3月前
|
算法 JavaScript 前端开发
对称加密算法解析:DES、AES及其在`pycryptodome` 和 `crypto-js` 模块中的应用
对称加密算法解析:DES、AES及其在`pycryptodome` 和 `crypto-js` 模块中的应用
169 1
|
4月前
|
算法 安全 搜索推荐
AES(Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由美国国家标准技术研究所(NIST)制定。
AES(Advanced Encryption Standard)是一种广泛使用的对称密钥加密算法,由美国国家标准技术研究所(NIST)制定。
|
4月前
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
|
5月前
|
算法 安全 Java
AES加解密算法:原理、应用与安全性解析
AES加解密算法:原理、应用与安全性解析
|
6月前
|
算法 安全 数据安全/隐私保护
AES算法逆向实战--某思路
本文是关于AES加密算法的逆向分析实战。通过跟栈方式找出加密位置,发现在`jslencode`函数中完成账号和密码加密。使用CryptoJS库,示例代码展示了如何用AES进行加密,其中`397151C04723421F`作为key,加密手机号和密码,并打印结果。
112 1
|
6月前
|
安全 算法 数据库
MD5、SHA、DES、AES、RSA的算法说明
【5月更文挑战第10天】MD5、SHA、DES、AES、RSA的算法说明
267 2
|
22天前
|
算法 安全 数据安全/隐私保护
基于game-based算法的动态频谱访问matlab仿真
本算法展示了在认知无线电网络中,通过游戏理论优化动态频谱访问,提高频谱利用率和物理层安全性。程序运行效果包括负载因子、传输功率、信噪比对用户效用和保密率的影响分析。软件版本:Matlab 2022a。完整代码包含详细中文注释和操作视频。