我正在用C#重写一个Rails Web应用程序。我真的厌倦了Ruby的哈希函数:
# Generates a 128 character hash
def Password.hash(password,salt)
Digest::SHA512.hexdigest("#{password}:#{salt}")
end
以下C#函数给出了不同的结果:
private static string Hash(string password, string salt)
{
return BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(password + ":" + salt))).Replace("-", "").ToLower();
}
我做错了什么?
谢谢
答案 0 :(得分:6)
没关系。结果实际上 ARE 相同。因此,如果您需要将Ruby的散列转换为C#,
Digest::SHA512.hexdigest(some_string)
与
相同BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(someString))).Replace("-", "").ToLower();
C#更冗长,但最重要的是它有效! :)