前端加密解密- 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 小时前
Redis通用命令+五大核心数据结构
前端·bootstrap·html
Refly2 小时前
【微信接入 OpenClaw 龙虾🦞】10分钟手把手教程完成接入,Claude 模型无限使用
前端·微信·github
恋猫de小郭2 小时前
为什么中转渠道的顶级模型会不好用?这是一个技术问题
前端·人工智能·ai编程
发现一只大呆瓜2 小时前
React-深度拆解 React路由:从实战进阶到底层原理
前端·react.js·面试
不甜情歌2 小时前
搞懂 Promise:告别回调嵌套,再也不怕异步代码乱成麻
前端·javascript
野草arthas2 小时前
什么是视觉层次?为什么需要它?
前端
发现一只大呆瓜2 小时前
React-手把手带你实现 Keep-Alive 效果
前端·react.js·面试
酉鬼女又兒3 小时前
入门前端CSS 媒体查询全解析:从入门到精通,打造完美响应式布局(可用于备赛蓝桥杯Web应用开发)
前端·css·职场和发展·蓝桥杯·前端框架·html5·媒体
Dxy12393102163 小时前
HTML常用标签详解
前端·html