Silverlight中的MD5哈希

pav*_*red 10 c# silverlight md5 windows-phone-7

我正在开发Windows Phone 7应用程序.我在Silverlight中使用此实现进行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();    
    }
Run Code Online (Sandbox Code Playgroud)

但是,我没有为我提供的输入获得正确的MD5哈希值.我不确定这段代码有什么问题.如果有人在Silverlight中使用 此实现进行MD5哈希,你知道我哪里出错吗?

Jon*_*eet 11

您将返回输入的十六进制版本,而不是哈希:

foreach (byte b in bs)
Run Code Online (Sandbox Code Playgroud)

应该

foreach (byte b in hash)
Run Code Online (Sandbox Code Playgroud)

(Convert.ToBase64String(hash)如果您不介意它在Base64而不是十六进制中,则使用另一种方法.)

  • @Pavanred嗯,你可以让Rubber Ducky停止感到愚蠢:) http://en.wikipedia.org/wiki/Rubber_duck_debugging (5认同)