# 加密工具 提供 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 参考 | 函数 | 参数 | 说明 | |------|------|------| | 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 解密 |