security - 为什么在数据库已经受到威胁时使用哈希密码?
问题描述
尽管开发人员在保存到数据库之前应该对凭据进行哈希处理似乎微不足道,但我不明白为什么需要这样做。
发明密码是为了防止一些用户看到属于其他人的一些私人数据。例如,聊天应用程序使用密码只允许经过身份验证的用户查看和发送消息。
假设一个这样的应用程序以纯文本形式保存密码。如果黑客可以访问数据库,他们将能够看到数据并对其进行更改。
现在说密码是散列的。这不应该改变任何东西,因为如果攻击者可以访问数据库,即使他们看不到实际的密码,他们也应该能够看到数据并再次更改它。
有了这些推理,人们可以争辩说,当攻击者只能看到数据而不能更改数据时,第二种情况更有利。但是,如果攻击者既可以看到又可以更改数据,那么散列将毫无用处。
那么哈希背后的基本原理是什么?
解决方案
人们倾向于重复使用密码。想象一下有人入侵了 moddedandroid.ru,因此有人可以登录到您的 stackoverflow 帐户。
推荐阅读
- android - 无法在 Windows 7 上将三星 Galaxy S7 驱动程序更新为 android 驱动程序
- c# - 找不到任何兼容的框架版本找不到指定的框架“Microsoft.AspNetCore.App”,版本“2.2.0”
- python - 使用 pip 后 Python 2.7 突然消失
- c# - 从另一个文件中获取变量的值
- r - R:如何在函数的循环中调用省略号变量中的元素?
- unions - 将数据从联合存储到另一个变量
- python - 如何修复“元组对象没有属性”?
- python - 权重转移导致更小的模型(Keras)
- sql-server - SQL Server 通配符长度
- design-patterns - 您如何从不支持服务器发送事件的服务器获取接近实时的数据?