我目前正在使用Windows Phone和Silverlight中内置的方法来创建字符串的SHA1哈希值。以下是代码:
private static string CalculateSHA1(string text)
{
SHA1Managed s = new SHA1Managed();
UTF8Encoding enc = new UTF8Encoding();
s.ComputeHash(enc.GetBytes(text.ToCharArray()));
System.Diagnostics.Debug.WriteLine("Original Text {0}, Access {1}", text, Convert.ToBase64String(s.Hash));
return Convert.ToBase64String(s.Hash);
}
例如,我尝试为此字符串生成哈希值:"hello"。
Silverlight输出:
LPJNul+wow4m6DsqxbninhsWHlwfp0JecwQzYpOLmCQ=
正确的输出:aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
那么我的代码哪里出了问题呢?
ToLowerInvariant()
来匹配 UNIX,因为几乎总是小写的哈希。 - Francesc