javascript AES加密及解密

该博客介绍了如何使用npm包crypto-js和js-md5进行AES加密和解密操作。在JavaScript中,通过MD5对密钥进行处理,然后利用CBC模式和PKCS7填充进行加密。加密和解密的方法分别导出,可用于字符串和对象类型的数据。示例代码展示了如何导入和调用这些方法进行实际操作。
摘要由CSDN通过智能技术生成

加密及解密代码

首先下载需要的npm包,可执行以下命令下载

npm install crypto-js --save-dev
npm install js-md5 --save-dev
AesUtil.js
let CryptoJS = require("crypto-js")
let MD5 = require("crypto-js/md5")
const IV = '0102030405060708'

// 加密方法
export function Encrypt (data, key) {
  key = CryptoJS.enc.Utf8.parse(MD5(key))
  let iv = CryptoJS.enc.Utf8.parse(IV)
  let encrypted = ''
  if (typeof (data) === "string") {
    encrypted = CryptoJS.AES.encrypt(data, key, {
      iv: iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7
    })
  } else if (typeof (data) === "object") {
    data = JSON.stringify(data)
    encrypted = CryptoJS.AES.encrypt(data, key, {
      iv: iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7
    })
  }
  return encrypted.toString()
}

// 解密方法
export function Decrypt (data, key) {
  key = CryptoJS.enc.Utf8.parse(MD5(key))
  let iv = CryptoJS.enc.Utf8.parse(IV)
  let decrypted = CryptoJS.AES.encrypt(data, key, {
      iv: iv,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7
    })
  let decryptedStr = decrypted.toString(CryptoJS.enc.Utf8)
  return decryptedStr.toString()
}

具体调用如下:

import { Encrypt, Decrypt } from 'xxx/AesUtil.js'(xxx代表文件路径)
let obj = {
	"name": 'aa',
	"age": 12
}
let enstr = Encrypt(obj, 'info')
console.log(enstr)
let destr = Decrypt(enstr, 'info')
conosle.log(destr )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值