接口请求响应加密常用方式和区别
分类: JavaScript 16 0
一、对称加密与非对称加密区别
| 比较项目 | 对称加密 | 非对称加密 |
|---|---|---|
| 密钥数量 | 一个密钥,加密和解密使用相同密钥 | 两个密钥,即公钥和私钥,加密用公钥,解密用私钥 |
| 加密速度 | 速度快,因为算法相对简单 | 速度慢,算法复杂,计算量较大 |
| 安全性 | 密钥管理难度大,若密钥泄露则信息易被破解 | 安全性较高,公钥公开分发,私钥自己保存 |
| 应用场景 | 大量数据的快速加密,如磁盘加密、网络传输数据加密 | 身份认证、数字签名、密钥交换,如 SSL/TLS 协议 |
二、对称加密常用方式
1. crypto-js(最常用,全场景覆盖)
-
- 特点:支持对称加密(AES 等)、哈希算法,可处理字符串(JSON)和二进制数据(文件),浏览器 / Node.js 通用。
- 支持能力:
- JSON 加密:直接对 JSON 字符串加密,解密后解析为对象。
- 文件处理:将文件转为 Base64 或 Uint8Array 后加密,解密后还原为二进制流。
2. libsodium-wrappers(高安全性,支持二进制高效处理)
-
- 特点:基于现代加密标准,支持二进制数据直接加密(无需转 Base64),适合大文件和高安全场景(如金融、隐私数据)。
- 支持能力:
- JSON:转为 Uint8Array 后加密。
- 文件:直接处理 ArrayBuffer(二进制流),性能优于字符串转换。
三、非对称加密常用方式
1. jsencrypt(RSA 轻量实现)
- 用途:前端用公钥加密对称密钥(如 AES 密钥),后端用私钥解密,确保密钥安全传输(避免对称密钥明文暴露)。
2. @noble/hashes + @noble/ed25519(现代非对称算法)
- 特点:轻量、无依赖,支持 Ed25519(签名)、X25519(密钥交换),适合移动端或性能敏感场景。
四、几种加密方式的使用场景
- 常规场景:优先用
crypto-js,兼顾 JSON 和文件处理,API 简单,社区成熟。 - 高安全 / 大文件场景:选
libsodium-wrappers,二进制处理高效,抗攻击能力强。 - 密钥交换:用
jsencrypt(RSA)或@noble/ed25519(现代算法),确保对称密钥安全传输。 - 文件上传 / 导出:结合原生
FileReader和BlobAPI,配合加密库处理二进制数据。
共 0 条评论关于 “接口请求响应加密常用方式和区别”