安逸
2024-07-31
今天看到一个题目:用户点击忘记密码时,为啥是修改密码,而不是返回原密码? 思考了一下: 除了初学者阶段会使用明文存储密码之外。大家都会对密码进行加密。那么是否可以当做其实服务器也不知道你的密码是什么,只知道一串哈希值。 猜想:若设计系统的时候,是否可以将数据库中的哈希值取出,通过已知加密盐进行反推呢? 问了一下AI给出了答案是:在现代密码学中,哈希算法设计成单向函数,即无法通过加密盐与哈希值进行反推。若需要反推原始密码只能字典、暴力、彩虹表等方法进行破解。 结论: 1:服务器中的数据库的密码是加密后的密码。所以服务器也不知道你的密码是什么,则所以无法返回 2:若想知道原密码是什么,用户可以通过自己记忆中的密码,去尝试。 针对结论第二点: 1⃣️在以前的系统中,有些系统功能设计可以使用原始密码验证去修改密码。即输入原密码通过加密盐进行哈希运算得到结果与数据库比对,通过即可修改密码。 2⃣️现在的很多系统不允许使用与原密码相同的新密码。也是同样的原理。但是你只能尝试一次。因为一旦比对通过,那么你的密码就修改了。并不能知道原密码 考虑到安全性问题:假设可以返回原密码,若被拦截岂不是别人知道了你的密码?那么拿着你的密码去别的网站试。😂 可能有些东西考虑不周到,可以指导一下。
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP