我正在跟我的一个朋友说话,他说要将用户密码存储在数据库中,他和我引用:
他声称这是可读的,因为他“可以立即知道”使用了什么类型的哈希摘要。
我认为我之前从未见过这个,但是,我正在寻找原因,除了未经授权的用户可以立即知道使用何种类型的哈希来加密密码和存储字段所需的额外空间。
我的直觉反应是这种处理密码的方法很愚蠢,因为帮助攻击者破解密码的任何迹象都是一个弱点。我应该用什么其他理由来说服他这是个坏主意?
谢谢!
答案 0 :(得分:4)
这是一个好主意。每个人都这样做,包括在Unix系统上的/etc/password
(/etc/shadow
...)文件中。
任何体面的安全模型都会假设攻击者知道使用了什么类型的哈希函数,只是因为哈希系统是一个软件,存储在硬盘上。相反,相信不宣布使用哪个哈希函数的优点类似于security through obscurity而且那很糟糕。
所以不要试图说服你的朋友他所做的事情很糟糕。相反,让他说服你他正在做的事情是好的。
PS:这不是密码加密,这是密码哈希。散列不是一种加密方式。
答案 1 :(得分:2)