node.js加密方式

570 阅读1分钟

常用加解密库

  • 在nodejs中有一个加密模块,是原生的,使用非常复杂,一般不会使用
  • 安装:cnpm i -S crypto-js
// 引入模块
const crypto = require('crypto-js')
//选择加密方式
crypto.MD5()|| AES() || DES()

MD5

  • 不可逆的加密方式(可以通过撞库来进行破解),多用于密码的加密
  • 很多的数据需要进行加密处理,根据不同的业务需要使用不同的加密手段 密码不能被人家破解,把加密方式设置为不可逆 如果是业务数据,就需要使用可逆的加密方式
  • 加密用户登录密码
    // 安装:cnpm i -S crypto-js
    // 在node_modules文件下找到 crypto-js将其复制到静态资源文件下
    // <script src="./js/crypto-js.js"></script>
    // 使用 CryptoJS.MD5(pwd.value).toString() 方法加密后 在传入后端

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就是对称加密