crypto.md 2.1 KB

加密工具

提供 MD5、Base64、SM4、AES、RSA 等加密方法。

基础加密

import { crypto, md5Encrypt, base64Encode, base64Decode, randomString } from '@/utils/crypto'

// MD5 加密
const hash = md5Encrypt('password123')

// Base64 编解码
const encoded = base64Encode('hello')
const decoded = base64Decode(encoded)

// 随机字符串
const str = randomString(16)

对称加密

SM4 加密

import { sm4Encrypt, sm4Decrypt } from '@/utils/crypto'

const encrypted = sm4Encrypt('敏感数据', 'secretKey')
const decrypted = sm4Decrypt(encrypted, 'secretKey')

AES 加密

import { aesEncrypt, aesDecrypt } from '@/utils/crypto'

const encrypted = aesEncrypt('敏感数据', 'secretKey')
const decrypted = aesDecrypt(encrypted, 'secretKey')

非对称加密

import { rsaEncrypt, rsaDecrypt } from '@/utils/crypto'

// RSA 加密(公钥)
const encrypted = rsaEncrypt('敏感数据', publicKey)

// RSA 解密(私钥)
const decrypted = rsaDecrypt(encrypted, privateKey)

密钥交换

import { 
  initKeyExchange, 
  getSessionKey, 
  isKeyExchanged,
  resetKeyExchange 
} from '@/utils/crypto'

// 初始化密钥交换
await initKeyExchange()

// 获取会话密钥
const sessionKey = getSessionKey()

// 检查是否已交换
if (isKeyExchanged()) {
  // 可以进行加密通信
}

// 重置密钥交换
resetKeyExchange()

加密请求

import { encryptRequest, decryptResponse, shouldEncrypt } from '@/utils/crypto'

// 检查是否需要加密
if (shouldEncrypt(url)) {
  const encrypted = encryptRequest(data)
}

// 解密响应
const decrypted = decryptResponse(response)

API 参考

函数 参数 说明
md5Encrypt data MD5 加密
base64Encode data Base64 编码
base64Decode data Base64 解码
randomString length 生成随机字符串
sm4Encrypt data, key SM4 加密
sm4Decrypt data, key SM4 解密
aesEncrypt data, key AES 加密
aesDecrypt data, key AES 解密
rsaEncrypt data, publicKey RSA 加密
rsaDecr`ypt data, privateKey RSA 解密