【发布时间】:2010-11-17 15:50:24
【问题描述】:
我正在开发一个 Windows phone 7 应用程序。我在silverlight 中使用this implementation 进行MD5 散列。
我正在使用此代码 -
protected string GetMD5Hash(string input)
{
byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);
MD5Managed md5 = new MD5Managed();
byte[] hash = md5.ComputeHash(bs);
StringBuilder sb = new StringBuilder();
foreach (byte b in bs)
{
sb.Append(b.ToString("x2").ToLower());
}
return sb.ToString();
}
但是,对于我提供的输入,我没有得到正确的 MD5 哈希值。我不确定这段代码有什么问题。如果有人在silverlight 中使用this implementation 进行MD5 哈希,你知道我哪里出错了吗?
【问题讨论】:
-
请注意,MD5 现在很可能被认为已过时 - 它不安全。我建议使用 SHA 系列的实现。
-
为什么你认为这是错误的?你拿什么来比较?您链接到的页面上有 cmets 说它有问题,不应该使用
-
@Mr.失望我正在使用第 3 方 API,所以这真的不能由我来决定。
-
@Matt Lacey 是的,我看到了那些 cmets。但是当我寻找替代品时,除了自己从头开始做之外,我没有找到其他任何东西。许多线程,甚至在stackoverflow中都建议了这个实现。我怎么知道它错了?通常,MD5 哈希表示为 32 个十六进制数字的序列,但对于某些输入,我得到了更多。
-
我在 Windows Phone 7 应用程序上找不到 MD5Managed。
标签: c# silverlight windows-phone-7 md5