前端加密解密- 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))
相关推荐
Autumn_ing5 小时前
Design.md生成UI怎么验收?举例运营后台的颜色、状态和数据核对
前端·ui·ai·设计系统·paico·ai生成ui·design.md
keyipatience6 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
朱涛的自习室6 小时前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
java1234_小锋9 小时前
【技术专题】HTML5 网页技术 - HTML5简介 & HTML5 文档结构
前端·html·html5
鶴哥只手遮天9 小时前
Vue 3 核心源码深度剖析系列(v3.5.44)-第 1 章 项目全景:monorepo 架构与工程化体系
前端·vue.js·开源
流星。。方9 小时前
小团队官网SEO落地:前端语义化与静态生成的工程实践
前端·状态模式
用户530429765799 小时前
盘点危化品搬运诊断的6类工具与自处理边界判断
前端
curtain9 小时前
从古法编程到 Agent:我入行这两年,AI 改变了什么
前端·openai
zyfts9 小时前
10分钟自制Codex钉钉通知Skill:AI干完活自动钉钉提醒你
前端
大孜然10 小时前
孜然QQ频道自动化程序机器人配置教程
前端