为什么需要加密
前端在进行用户登录时,密码的传输如果使用明文,在报文被拦截之后即可直接获取传输的数据,明文密码被拦截会十分危险,因此在传输密码前时常对密码进行加密。
MD5
MD5的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
前端如何使用MD5进行加密
1、使用npm安装md5
npm install --save js-md5
2、在需要使用的页面中引入md5
import md5 from 'js-md5'
3、使用md5进行加密
- 普通的md5加密
md5(pwd)
- 双重md5加密
md5(md5(pwd))
- md5加盐Salt加密算法
md5($salt.$pass)
md5($pass.$salt)
md5($salt.$pass.$salt)
md5(md5($pass).$salt)
md5($salt.md5($pass))
例如:
let pwd = md5(values.userName + values.passWord)
//对密码进行md5加盐加密,盐为userid
console.log('用户名:', values.userName, '密码:', pwd)