最近我一直在寻找一种更安全的方式来哈希用户密码并将其插入到数据库中。我已经研究了所有可用的哈希方法。有人说bcrypt是最好的,因为它很慢。如果我不需要最高级别的安全性,但仍然要保持安全,我可以使用sha512,然后对该哈希使用md5算法。如果我颠倒哈希的顺序会有区别吗?请注意,我将为每个操作使用单独的salt。这样是否安全?还有其他可以达到相同目的的组合吗?
sofar = hash("sha512", user_salt + site_salt + input_password);
iterations = 100000; // Should be changed based on hardware speed
while (iterations > 0)
{
sofar = hash("sha512", user_salt + site_salt + sofar);
iterations--;
}
user.save("password", "$sha512$" + user_salt + "$" + iterations + "$" + sofar);