现在都是用https通信,前端项目登录的时候还需要用md5加密账号密码?
不需要在前端使用MD5加密账号密码。
最佳实践:
因此,在前端登录过程中,不需要使用MD5或其他任何客户端加密方法来处理密码。
我个人是觉得在有 HTTPS 的情况下,这个没必要。实际上,即使是一些国际大厂的,也是这样的。
但是,目前因为国内法律法规的原因,一些安全公司在做合规的时候,如果抓包发现你的密码是明文传输的(即使已经使用了 HTTPS),他们依然会认为你这个不合规,需要你整改,当然,这种情况,你也可以直接把整个表单加密了发过去,里面照样是原文。
所以,我建议你结合实际来,因为除了这个原因,还有可能就是,虽然 HTTPS 保证了你传输过程的安全性,但是在业务中,有时候就不一定了,虽然现在密码都是存的 hash 后的值,就怕万一你把用户密码(表单请求)打印到了日志里面,对吧。
当然,对于你自己的系统而言,你要不要用户的密码你都可以登录上用户的账号,并不关心用户的原始密码,后端只关心你传的那个字符串在经过 Hash 后,能不能与数据库中的对应的上。但是,那对于用户而言,你截留了原始密码,就有可能被人拿去撞库的风险了。
所以,要不要在前端进行加密,只是你结合业务的一个选择。
13 回答13k 阅读
8 回答2.8k 阅读
2 回答5.2k 阅读✓ 已解决
5 回答1.4k 阅读
7 回答2.2k 阅读
3 回答1.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
从来都不需要。因为 md5 并没有很好的办法来逆向,所以你传递了 md5 之后的密码给后端,后端也只能原样保存。相当于如果有个中间人攻击,ta 一样能拿到原始密码。