面试官:为什么忘记密码要重置,而不是告诉我原密码?

Python客栈

共 2493字,需浏览 5分钟

 ·

2024-04-20 17:00

Python客栈设为“星标
第一时间收到最新资讯

来源丨程序员Sunday(ID:gh_255b41b1f634)


最近有个同学在面试中遇到了一个很有意思的问题,我相信大多数的同学可能都没有遇到过。

面试官提问说:“为什么很多网站忘记密码需要重置,而不是直接告诉用户原密码?

很有意思的问题对不对。很多网站中都有“忘记密码”的功能,但是为什么当我们点击忘记密码,经过一堆验证之后,网站会让我们重置密码,而不是直接告诉我们原密码呢?

所以,今天咱们就来说一说这个问题。

防止信息泄露

2022年11月1日,Termly 更新了《98个最大的数据泄露、黑客和曝光事件》(98 Biggest Data Breaches, Hacks, and Exposures)。其中包括很多知名网站,比如:Twitter

所以,你保存在网站中的数据可能并没有那么安全。那么这样的数据泄露后会对用户产生什么影响呢?

对大多数人来说最相关的经历(网上看到的)应该是诈骗电话,他们甚至可以很清楚的告诉你你的所有个人信息。那么这些信息是怎么来的呢?

有些同学可能说是因为“网站贩卖了我的个人信息”,其实不是的。相信我 大多数的网站不会做这样的事情

出现这样事情的原因,大部分都是由于数据泄露,导致你所有的个人信息都被别人知道了。

那么,同理。既然他们可以获取到你的私人信息,那么你的账户和密码信息是不是也有可能被盗取?

而对于大多数的同学来说,为了防止密码太多忘记,所以很多时候 大家都会使用统一的密码! 也就是说你的多个账号可能都是同一个密码。所以,一旦密码泄露,那么可能会影响到你的多个账号,甚至是银行卡账号。

因此,对于网站(特别是一些大网站)来说,保护用户数据安全就是至关重要的一件事情。那么他们一般会怎么做呢?

通常的处理方式就是 加密。并且这种加密可能会在多个不同的阶段进行多次。比如常见的:SHA256、加盐、md5、RSA 等等

这样看起来好像是很安全的,但是还有一个问题,开发人员知道如何解密他们。或者有些同学会认为 数据库中依然存在着正确的密码 呀?一旦出现信息泄露,不是依然会有密码泄露的问题吗?

是的,所以为了解决这个问题,网站本身也不知道你的密码是什么。

网站也不知道你的密码是什么

对于网站(或者其他应用)来说,它们是 不应该 存储你的原密码的。而是通过一些系列的操作来保存你加密之后的代码。并且这个加密是在前端传输到服务端时就已经进行了,并且是 不可逆 的加密操作,例如:MD5 + 加盐

我们举一个简单的例子:

比如有个用户的密码是 123456,通过 md5 加密之后是:E10ADC3949BA59ABBE56E057F20F883E

md5 理论上是不可逆的,所以从理论上来说这个加密后的代码是不可解析的。但是 md5 有个比较严重的问题就是:同样的字符串加密之后会得到同样的结果

这也就意味着:E10ADC3949BA59ABBE56E057F20F883E 代表的永远都会是 123456

所以,如果有一个很大的 md5 密码库,那么理论上就可以解析出所有的 md5 加密后的字符串。就像下图一样:

因此,在原有的 md5 加密之上,很多网站又增加了 加盐 的操作。所谓加盐指的就是:在原密码的基础上增加一些字符串,然后进行 md5 加密

比如:

  1. 原密码为 123456
  2. 在这个密码基础上增加固定字符“LGD_Sunday!”
  3. 得到的结果就是:“LGD_Sunday!123456”
  4. 然后用该字符进行 md5 加密,结果是:E1FC8CB7B54BED0FDC8711530236BA4D
  5. 此时尝试解密,会发现 解密失败

这样大家是否就可以理解,为什么很多网站在让我们输入密码的时候 ,要求包含 大小写+符号+ 字母 + 数字 了吧。本质上就是为了防止被轻松解密。

而服务端拿到的就是 “E1FC8CB7B54BED0FDC8711530236BA4D” 这样的一个加密后的结果。然后服务端再次对密码进行加密操作,从而得到的是一个 被多次加密 的数据,保存到服务端。

所以说:网站无法告知你密码,因为它也不知道原密码是什么。

目前很多网站或应用为了保证用户安全,都已经采取 扫码登录、验证码登录 等方式进行登录验证,这种无密码的方式,会更大程度的保证你的账号安全。


往期回顾

1、我超!全屏弹窗Win11
2、所有Windows镜像都将失效?进入第3阶段。。。
3、只要会说话,不写代码也能开发!百度又搞了一个大动作
4、你管这破玩意叫文件系统
5、22岁的火狐,市占率被3岁的自己超了。
        


点击关注公众号,阅读更多精彩内容

浏览 253
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报