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天前
|
存储 算法 安全
【加密算法】AES对称加密算法简介
【加密算法】AES对称加密算法简介
|
6天前
|
安全 小程序 数据安全/隐私保护
aes加密算法python版本
aes加密算法python版本
47 0
|
6天前
|
并行计算 算法 搜索推荐
简单学习一下AES算法:GCM、ECB、CFB、OFB等
简单学习一下AES算法:GCM、ECB、CFB、OFB等
212 0
|
6天前
|
算法 Java
Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
Java使用Cipher.getInstance(“AES/ECB/PKCS5Padding“);加解密算法工具类实现
55 0
|
6天前
|
安全 算法 数据库
MD5、SHA、DES、AES、RSA的算法说明
【5月更文挑战第10天】MD5、SHA、DES、AES、RSA的算法说明
16 2
|
6天前
|
算法 Android开发
安卓逆向 -- 自吐算法(3DES和AES)
安卓逆向 -- 自吐算法(3DES和AES)
20 1
|
6天前
|
算法 数据安全/隐私保护
火山中文编程 -- DES算法和AES算法
火山中文编程 -- DES算法和AES算法
22 0
|
6天前
|
存储 前端开发 JavaScript
JavaScript学习 -- AES加密算法
JavaScript学习 -- AES加密算法
64 0
|
6天前
|
算法 Java 数据库连接
实现 MyBatis-Plus 中的配置加密功能(使用 AES 算法)
实现 MyBatis-Plus 中的配置加密功能(使用 AES 算法)
209 0
|
6天前
|
算法 数据安全/隐私保护 计算机视觉
基于二维CS-SCHT变换和LABS方法的水印嵌入和提取算法matlab仿真
该内容包括一个算法的运行展示和详细步骤,使用了MATLAB2022a。算法涉及水印嵌入和提取,利用LAB色彩空间可能用于隐藏水印。水印通过二维CS-SCHT变换、低频系数处理和特定解码策略来提取。代码段展示了水印置乱、图像处理(如噪声、旋转、剪切等攻击)以及水印的逆置乱和提取过程。最后,计算并保存了比特率,用于评估水印的稳健性。