专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

为什么登录密码需要md5 登录密码要求

ins518 2024-10-04 23:38:20 技术文章 13 ℃ 0 评论

登录一个网站或者一个APP时,需要填写用户名、密码,对用户所填写的密码的处理方式,一定程度上决定了用户密码的安全性。


1、未做任何处理,密码明文传输。

这种方式是最危险的,一旦传输信息被截取,很容易识别密码。

2、密码md5加密

较安全,即便传输数据被截取,因为md5是不可逆算法,所以很难猜到明文密码,但是一方面md5虽然是不可逆算法,但存在暴力破解的可能性(常用密码的md5值也很好猜),另一方面,别人可以直接使用md5后的值构造请求,这样虽然不知道密码明文,同样可以伪造登录。

3、使用HTTPS协议传输数据

使用https确实可以避免中间人窃取数据,不管传输的什么数据,只有你的客户端和服务器知道,中间环节是没法解密的。那是不是这样就不需要对参数做md5了?试想用明文传输用户密码,首先,客户端本地机器可能会在传输之前泄露密码,其次,传输到服务器之后,这个用户明文密码可能会经过一层层应用层服务,各个模块的开发运维人员可能清楚的看到用户使用的密码,甚至有的开发人员为方便调试会把明文密码打印到日志中,还有可能有些系统直接明文存储数据库,想象一下数据库被盗的后果吧。

4、使用HTTPS协议传输,密码md5, 数据库对密码信息加密

稳妥的方式,使用HTTPS协议传输,并将密码加密,并且数据库加密存储。比如,数据库可以存储md5之后的值(md5是签名算法,还可以使用对称加密算法加密数据存储,如AES),前端传参也是md5之后的值,这样中间人没法解密,服务开发运维人员也拿不到用户的明文密码。


(八卦:曾经看到一篇文章,有人测试几个大厂的APP,竟然也有明文传密码的,不寒而栗)

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表