Skip to content

加密工具

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

基础加密

js
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 加密

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

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

AES 加密

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

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

非对称加密

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

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

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

密钥交换

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

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

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

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

// 重置密钥交换
resetKeyExchange()

加密请求

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

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

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

API 参考

函数参数说明
md5EncryptdataMD5 加密
base64EncodedataBase64 编码
base64DecodedataBase64 解码
randomStringlength生成随机字符串
sm4Encryptdata, keySM4 加密
sm4Decryptdata, keySM4 解密
aesEncryptdata, keyAES 加密
aesDecryptdata, keyAES 解密
rsaEncryptdata, publicKeyRSA 加密
rsaDecr`yptdata, privateKeyRSA 解密