关于密码和数据库的安全性,注意用户唯一的方法是让用户s passwords is if he somehow acess the database itself (probably he got the db password), so does it really makes diference if the user password is hashed or encrypted?
询问是否有人访问数据库,他不需要用户密码,他可以进行更改数据库本身。
I
关于加密,我在php手册上发现,河豚是最明显的,但香港专业教育学院在谷歌的第一次结果搜索中找到了一个在线解密器,而且,黑客可能会知道如何解密任何密码,他已经获得了数据库密码本身。
你怎么看?密码加密真的需要,安全吗?提前谢谢。
答案 0 :(得分:0)
有人可以使用SQL注入来获取用户的密码。在这种情况下,他可能无法访问除用户表之外的任何表,所以
如果用户密码经过哈希处理或加密,它确实会产生差异吗
是肯定的。除此之外,如果你有版主,开发人员和你看这个表,作为一个用户,如果你正在查看哈希,而不是实际密码,我会觉得更舒服,因为我可能会在其他密码上使用该密码站点。总的来说,它为您的用户提供了更多的安全性和舒适性,所以真正的问题是,为什么不呢?
答案 1 :(得分:0)
关于加密,我在php手册上发现,河豚是最多的 指出,但我在第一次搜索结果中发现了一个在线解密器 在谷歌
最好的解决方案是哈希密码,而不是加密密码。许多人犯了将加密与散列混淆的错误(反之亦然)。加密文本可以解密,而散列是单向的。一旦你对某些东西进行散列,就不能“去散列”它。你要找的是Bcrypt,这是一种基于 Blowfish密码 的哈希算法。
关于攻击者获取密码哈希值的权限:
除了加入盐以防止彩虹表攻击, bcrypt是一种自适应函数:随着时间的推移,迭代计数可以是 增加到使其变慢,因此它仍然可以抵抗蛮力 即使计算能力越来越强,搜索攻击。
关于Bcrypt的好处是它很慢,这意味着尝试破解Bcrypt哈希是相对昂贵的(取决于盐的迭代和随机性)。
答案 2 :(得分:0)
如果攻击者获取了用户密码,则他有密码 如果攻击者获得了用户密码的哈希值,那么他只有密码的哈希值,而不是密码本身。
现在想想人们的懒惰:有可能检索到的密码不是这个帐户所特有的,但也适用于其他帐户(电子邮件,Twitter,Facebook等)。这实际上一直在发生。
如果您只是使用强密码散列方案(如bcrypt,scrypt或PBKDF2)存储用户密码的哈希值,则黑客需要大量资源(时间或处理能力)才能猜测或暴力破解密码。 / p>
顺便说一下:哈希函数是不可逆的。那些哈希反转站点只是一个巨大的查找表,它为已知的密码+哈希对返回一个密码。
答案 3 :(得分:0)
据我所知,哈希会使密码本身更安全,但不会使数据库更安全。我正在阅读关于密码安全的内容,我想问用户,哪些更安全。 为每个用户使用一个盐,并存储在用户表中(有更好的方法来存储吗?)或为每个人使用盐?
答案 4 :(得分:0)
我想对已经给出的好答案做一些补充。
首先,您提到的Blowfish确实是一种加密算法,可以解密。但是不要将 Blowfish 与 BCrypt 混合,这是一种基于Blowfish的散列算法。
其次,您为可以读取数据库的攻击者哈希密码。获取读取权限比写入访问容易得多,常用的技术是SQL注入。您可以在demo中自行尝试,点击→箭头填写准备好的输入。