众所周知,现在很多动态网站和APP都设有“找回密码”、“忘记密码?”等功能,以便用户在忘记账号的密码时快速重置密码。

为什么“找回密码”功能找不回密码?

那么问题来了,为什么“找回密码”功能不直接告诉我们原密码,而非要填写新密码呢?

服务器是如何存储你的密码的?

有人可能就会问了:这不是扯淡么?怎么可能{answer}?

{answer}代表互动的正确答案

这就要从一个算法开始讲起了。

哈希(Hash)算法是一种将任意长度的输入数据(如字符串、文件、数据包等)通过特定的算法转化为固定长度的输出数据的计算过程。这种输出数据被称为哈希值或哈希码,它具有不可逆的特性,高度的唯一性和确定性。即,你可以将一段文本转换成哈希码,但无法将一段哈希码重新转换成文本;且对于不同的输入数据,其哈希值几乎不可能相同,而对于相同的输入数据,其哈希值必定相同。

由于哈希算法的不可逆特性,使得用其加密密码等重要文本的安全性较高,所以现在的服务提供商一般都是不存储你的密码的,而是存储经过了哈希算法处理后的字符串。

那么,既然服务器也不知道密码,那它又

怎么校验输入的密码是否正确呢?

其实如果你有认真看前面有关哈希算法的介绍并且逻辑能力够强的话,你应该已经知道服务器是如何校验密码的了。没错,就是哈希值比对!

当你在客户端输入密码并请求登录时,服务器会将你输入的密码重新计算为哈希值,然后与数据库里面存储的哈希值进行比对,比对成功即为密码输入正确。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。