接口请求响应加密常用方式和区别

Jiafeng

分类: JavaScript 0 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(密钥交换),适合移动端或性能敏感场景。

四、几种加密方式的使用场景

  1. 常规场景:优先用 crypto-js,兼顾 JSON 和文件处理,API 简单,社区成熟。
  2. 高安全 / 大文件场景:选 libsodium-wrappers,二进制处理高效,抗攻击能力强。
  3. 密钥交换:用 jsencrypt(RSA)或 @noble/ed25519(现代算法),确保对称密钥安全传输。
  4. 文件上传 / 导出:结合原生FileReaderBlob API,配合加密库处理二进制数据。
  • 0人 Love
  • 0人 Haha
  • 0人 Wow
  • 0人 Sad
  • 0人 Angry
加密

作者简介: Jiafeng

共 0 条评论关于 “接口请求响应加密常用方式和区别”

Loading...