场景:需求是要把登录时候的密码加密,不允许用户在浏览器F12和类似Fiddler之类的抓包工具抓包获取用户登录的密码参数

解决办法和思路:使用md5加密

用户注册时将加密后的密码发送给后端存储
当登陆的时候,再将加密后的密码和数据库中加密的密码相匹配。
此加密无须解密

md5介绍

md5加密
MD5(单项散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。

MD5功能:
输入任意长度的信息,经过处理,输出32位的信息;

不同的输入得到的不同的结果(唯一性)

根据32位的输入结果不可能反推出输入的信息(不可逆)

前端使用md5加密

安装:
npm install js-md5 -D
在页面中使用:
import md5 from “js-md5”

代码:
// 加盐
 let salt='cvdf-yyds*123.cv987@'
 this.loginForm.Password = md5(salt+ this.loginForm.Password );

加盐加密:

​​​​​​​加盐加密是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“(salt)的n位随机数相关联

在尝试自己破解的过程中发现简单的密码md5加密可以被破解,这样会导致加密失败,所以使用加盐(salt)加密处理

密码+盐 一起加密形成密文,这样就算密码是弱密码,一起组成就是复杂的密码了。

由于使用加盐值以后的密码相当的安全,即便是获得了其中的salt和最终密文,破解也是一个耗费相当多时间的过程,可以说是破解单纯MD5的好几倍

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐