常见的几种加密方法:
- 对称加密算法:AES
- 非对称加密算法:RSA
- Hash算法:MD5
一、对称加密算法
AES加密
对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。
特点:
- 优点:算法公开、计算量小、加密和解密速度快、加密效率高
- 缺点:加密方和解密方公用一个密钥,密钥一旦泄露就不安全了。
- 使用场景:本地大批量数据加密、https 通信、网络传输等
JS的AES加密库:crypto-js
注意:
使用crypto-js, 引入4.x.x 的版本,项目打包后,会导致包体积过大。如对依赖包体积有严格的限制要求。建议版本降级,例如3.1.9,这个版本下打包后会小很多。
二、非对称加密算法
RSA加密
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
特点:
- 优点:非对称加密比对称加密安全性更好。
- 缺点:加密和解密花费时间长、速度慢(处理大批量数据真心慢),只适合对少量数据进行加密。
- 使用场景:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
JS的RSA加密库:jsencrypt
注意:
推荐一个体积较小的加密库 wxmp-rsa,在做微信小程序等对项目体积有严格要求的开发时,会很有用。