常用加解密库
- 在nodejs中有一个加密模块,是原生的,使用非常复杂,一般不会使用
- 安装:cnpm i -S crypto-js
const crypto = require('crypto-js')
crypto.MD5()|| AES() || DES()
MD5
- 不可逆的加密方式(可以通过撞库来进行破解),多用于密码的加密
- 很多的数据需要进行加密处理,根据不同的业务需要使用不同的加密手段
密码不能被人家破解,把加密方式设置为不可逆
如果是业务数据,就需要使用可逆的加密方式
- 加密用户登录密码
AES
- 对称加密 -- 使用同一个密钥进行加解密,常用于web传输参数(再项目中,因为一些数据比较重要,所以为了避免数据被抓包,所以数据传递使用对称加密,在进行数据传递之前,会先调用一个接口获取密钥(会传递电脑的一个唯一码给后端,后端会返回一个一次性的、有时效(5m)的码--code,用于对称加密的密钥),再用这个密码进行数据加密传递)
- AES.encrypt(message,key,cfg)加密
- AES.decrypt(ciphertext,key,cfg)解密
加密token
let token = AES.encrypt(result.id + '***' + Date.now() + '***' + Math.random(), 'lst').toString()
AES.decrypt(token, 'qxy-sdm').toString(enc.Utf8)
DES
- 非对称加密 -- 加密和解密不是同一个密钥,私钥和公钥是成对使用,公钥对外加密;私钥一定要保护好,用于解密;git就是对称加密