前端加密解密- base64、md5、sha256、AES

文章目录

一、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))
相关推荐
智码看视界2 分钟前
老梁聊全栈:JavaScript 原型链深入探索对象继承的奥秘
前端·javascript·ecmascript
布朗克16816 分钟前
39 Spring Boot Web实战
前端·spring boot·后端·实战
纽格立科技27 分钟前
DRM 发射端链路图(上)
前端·人工智能·车载系统·信息与通信·传媒
一 乐33 分钟前
幼儿园管理系统|基于springboot + vue幼儿园管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·幼儿园管理系统
云水一下40 分钟前
Vue.js从零到精通系列(七):高级特性实战——Teleport、异步组件、自定义指令与TypeScript深度结合
前端·vue.js·typescript
qq43569470142 分钟前
Vue05
前端·vue.js
qq_4221525744 分钟前
PDF 解密工具怎么选?2026 年文档密码移除方案与注意事项
java·前端·pdf
YHHLAI1 小时前
前端工程化调用 AI 多模态生图模型:Qwen Image Demo 实战
前端·人工智能
英勇无比的消炎药1 小时前
收藏备用TinyVue开发高频踩坑问题合集
vue.js
To_OC1 小时前
我一直以为 Ajax 是个黑盒,直到我写了这 50 行代码
前端·后端·全栈