哈希字符串不等于从控制台C#复制哈希字符串

By simon at 2018-02-07 • 0人收藏 • 39人看过

我创建了哈希。比我打印在控制台。复制哈希值并将其放置 代码比较。但是,他们是否定的同样的。

        String input = "Hello";
        String key = "Key";
        Byte[] hashKey = Encoding.UTF8.GetBytes(key);

        HMACSHA1 hmac = new HMACSHA1(hashKey);
        Byte[] computedHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(input));
        String computedHashString = Encoding.UTF8.GetString(computedHash);
        Console.WriteLine("Hash value of your input: .{0}.", computedHashString);

        if ("↨:?☼??W?u$YLR;?←?T?j" == computedHashString)
        {
            Console.WriteLine("They are same!");
        }
        else
        {
            Console.WriteLine("They are NOT same!");
        }

        Console.ReadLine();
console先谢谢你

2 个回复 | 最后更新于 2018-02-07
2018-02-07   #1

散列的结果不是UTF-8编码的文本,不应该被视为 办法。将其转换为十六进制或base64。例如:

string computedHashString = Convert.ToBase64String(computedHash);
从根本上说,您需要认真对待数据。转换a的结果 哈希到文本就像试图加载一个MP3 F回到图片浏览器,或者 试图解压缩应用压缩算法的结果。

2018-02-07   #2

散列的结果不是UTF-8编码的文本,不应该被视为 办法。将其转换为十六进制或base64。例如:

string computedHashString = Convert.ToBase64String(computedHash);
从根本上说,您需要认真对待数据。转换a的结果 哈希到文本就像试图加载一个MP3 F回到图片浏览器,或者 试图解压缩应用压缩算法的结果。

登录后方可回帖

Loading...