如何转换Ruby';s SHA512.hexdigest到C#?
我正在用C#编写一个Rails web应用程序。我非常喜欢Ruby的哈希函数:如何转换Ruby';s SHA512.hexdigest到C#?,c#,ruby,security,hash,C#,Ruby,Security,Hash,我正在用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
# 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();
}
我做错了什么
谢谢你没关系。结果实际上是相同的。因此,如果您需要将Ruby的哈希转换为C# 与
BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(someString))).Replace("-", "").ToLower();
C#要详细得多,但最重要的是它能工作!:) 每种情况下的结果是什么样的?Ruby真的使用UTF-8吗?太棒了。在Python中,它的表亲也是如此。
BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(someString))).Replace("-", "").ToLower();