前端安全,实现前端数据加密

985 阅读1分钟

常见的几种加密方法:

  • 对称加密算法:AES
  • 非对称加密算法:RSA
  • Hash算法:MD5

一、对称加密算法

AES加密

对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。

特点:

  • 优点:算法公开、计算量小、加密和解密速度快、加密效率高
  • 缺点:加密方和解密方公用一个密钥,密钥一旦泄露就不安全了。
  • 使用场景:本地大批量数据加密、https 通信、网络传输等

JSAES加密库:crypto-js

注意:
使用crypto-js, 引入4.x.x 的版本,项目打包后,会导致包体积过大。如对依赖包体积有严格的限制要求。建议版本降级,例如3.1.9,这个版本下打包后会小很多。

二、非对称加密算法

RSA加密

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

特点:

  • 优点:非对称加密比对称加密安全性更好。
  • 缺点:加密和解密花费时间长、速度慢(处理大批量数据真心慢),只适合对少量数据进行加密。
  • 使用场景:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

JSRSA加密库:jsencrypt

注意:
推荐一个体积较小的加密库 wxmp-rsa,在做微信小程序等对项目体积有严格要求的开发时,会很有用。