1. 哈希算法
- 散列算法也叫哈希算法,用来把任意长度的输入变换成固定长度的输出,常见的有md5,sha1等
相同的输入会产生相同的输出
不同的输出会产生不同的输出
任意的输入长度输出长度是相同的
不能从输出推算出输入的值
# md5加密代码
let crypto = require('crypto')
let str = 'hello'
let md5 = crypto.createHash('md5')
md5.update('world') // 指定要加密的值
md5.update('worldhello') // 再次添加要加密的值
console.log(md5.digest('hex')) //指定输出的格式 hex 十六进制
# 加盐代码
let crypto = require('crypto')
let path = require('path')
let hmac = crypto.createHmac('sha1', 'xxx')
hmac.update('123')
let result = hmac.digest('hex')
复制代码
对称加密
blowfish算法是一种对称的加密算法,对称的意思就是加密和解密使用的是同一个密钥。
非对称加密
1. 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)
2. 公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密,如果私钥加密,只能公钥解密
3. 因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法
复制代码