我使用pbkdf2算法来散列密码。 为evey密码生成随机盐,并设置迭代次数 为了使计算持续约1秒钟。
我也在sambe缓冲区中保存salt和hash:
-----------------------
| SaltLen | 4 |
-----------------------
| Salt | saltBytes |
-----------------------
| HashLen | 4 |
-----------------------
| Salt | hashBytes |
- ---------------------
我的问题是这个散列密码没有链接到一个用户(用户可以有多个密码),我需要有可能只使用密码本身取消密码。 我看到的唯一方法是使用数据库中的每个盐来对密码进行哈希处理,直到找到相同的哈希值(每个盐只需1秒)。
有没有更好的方法呢?
答案 0 :(得分:0)
处理密码等许可证是没有意义的。
PBKDF2&迭代只对客户端的检查有意义。在服务器端,他们只允许在您的服务器上执行DOS攻击。无论如何,在服务器上,您只需为每个请求添加1秒的延迟。
您不必哈希它们,因为只有数据库中的许可证才被认为是有效的。破解你的服务器并窃取它们没有任何意义。
要检查正确的许可证条目,您只需将许可证的数据库条目ID添加到许可证本身,并确切知道要检查的条目。