文章目录
- 一、base64
- 二、md5(只能加密,不能解密)
- [三、sha256 (不可解)](#三、sha256 (不可解))
- [四、AES(crypto-js 库实现)](#四、AES(crypto-js 库实现))
一、base64
- 加密
encode:Base64.encode() - 解密
decode:Base64.decode()
javascript
let Base64 = require('js-base64').Base64
二、md5(只能加密,不能解密)
使用场景: 用户密码存储、文件校验
使用
- npm安装:
npm install crypto-js --save/npm install js-md5 - 哪个组件使用就引入:
- 定义方法,然后调用
javascript
import md5 from 'js-md5';
import { MD5 } from 'crypto-js';
//使用
md5(text)
MD5(text).toString() //crypto-js 返回的是 WordArray 对象,需调用 .toString() 转为字符串
三、sha256 (不可解)
使用
- npm安装:
npm install js-sha256 - 引入及使用
javascript
import sha256 from 'js-sha256';
console.log(sha256('hello world')); // 输出加密后的字符串
四、AES(crypto-js 库实现)
使用
- npm安装
- 封装加密/解密工具函数
bash
npm install crypto-js
# 或使用 yarn
yarn add crypto-js
创建文件如 utils/aes.js,统一管理加解密逻辑:
javascript
import CryptoJS from 'crypto-js'
const SECRET_KEY = 'your-32-byte-secret-key-1234567890' // 密钥需16/24/32字节
const IV = '1234567890123456' // CBC 模式需 16 字节 IV
export function encrypt(plaintext) {
const encrypted = CryptoJS.AES.encrypt(plaintext, CryptoJS.enc.Utf8.parse(SECRET_KEY), {
iv: CryptoJS.enc.Utf8.parse(IV),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return encrypted.toString()
}
export function decrypt(ciphertext) {
const decrypted = CryptoJS.AES.decrypt(ciphertext, CryptoJS.enc.Utf8.parse(SECRET_KEY), {
iv: CryptoJS.enc.Utf8.parse(IV),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
return decrypted.toString(CryptoJS.enc.Utf8)
}
javascript
//使用
import { encrypt, decrypt } from '@/utils/aes'
console.log(encrypt(text),decrypt(text))