只是想知道在存储用户信息(如密码等)时是否将用户名哈希存储在数据库中是一种好习惯。
答案 0 :(得分:1)
没必要。只需使用一个哈希函数来设计无懈可击的暴力攻击,比如bcrypt。 SHA不足。
答案 1 :(得分:1)
答案 2 :(得分:1)
请勿以明文形式存储密码。但是你不需要哈希用户名。
但我假设您将某个服务器的此用户信息用于允许客户端登录。如果密码没有从客户端传送到服务器,那么它是安全的。在这种情况下,您可以使用一些单向哈希作为密码。如果您的客户端和服务器都知道哈希函数,那么您的密码永远不需要通过网络连接。但是如果你想改变哈希机制,问题就出现了。您的客户端和服务器都需要更新。在这种情况下,客户端必须协商使用的服务器机制。你最终会做一种spnego机制;)
答案 3 :(得分:1)
加密/哈希用户名是一种过度杀伤力。如果您担心安全问题,只需使用SHA256随机salt进行哈希。
加密用户名没有意义,因为您可能会根据userName,partial userName进行搜索。加密只会让搜索变得困难。
好吧,在我的一生中,我一直在使用SHA256和盐认为它是最大的。 Rein Henrichs对此帖的好评发现SHA256 may not be the safest。您可能想要使用bcrypt,但我想这很慢。我会做一些概念证明,如果它很慢,那么我会继续使用SAH256 + hash。
感谢您的链接。