将密码和信息存储在数据库中时是否应该对用户名进行哈希处理?

时间:2011-04-14 04:30:49

标签: mysql security

只是想知道在存储用户信息(如密码等)时是否将用户名哈希存储在数据库中是一种好习惯。

4 个答案:

答案 0 :(得分:1)

没必要。只需使用一个哈希函数来设计无懈可击的暴力攻击,比如bcrypt。 SHA不足。

答案 1 :(得分:1)

不,你不应该。

否则,您无法显示注册用户列表或该类型的任何内容。它还会使许多其他功能不必要地笨拙。

只需在用户密码上使用单向摘要方法(例如bcrypt),并使用适当高的工作因素。

答案 2 :(得分:1)

请勿以明文形式存储密码。但是你不需要哈希用户名。

但我假设您将某个服务器的此用户信息用于允许客户端登录。如果密码没有从客户端传送到服务器,那么它是安全的。在这种情况下,您可以使用一些单向哈希作为密码。如果您的客户端和服务器都知道哈希函数,那么您的密码永远不需要通过网络连接。但是如果你想改变哈希机制,问题就出现了。您的客户端和服务器都需要更新。在这种情况下,客户端必须协商使用的服务器机制。你最终会做一种spnego机制;)

答案 3 :(得分:1)

加密/哈希用户名是一种过度杀伤力。如果您担心安全问题,只需使用SHA256随机salt进行哈希。

加密用户名没有意义,因为您可能会根据userName,partial userName进行搜索。加密只会让搜索变得困难。


好吧,在我的一生中,我一直在使用SHA256和盐认为它是最大的。 Rein Henrichs对此帖的好评发现SHA256 may not be the safest。您可能想要使用bcrypt,但我想这很慢。我会做一些概念证明,如果它很慢,那么我会继续使用SAH256 + hash。

感谢您的链接。