如何转换Ruby';s SHA512.hexdigest到C#?

如何转换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

我正在用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();
 }
我做错了什么


谢谢你

没关系。结果实际上是相同的。因此,如果您需要将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();