首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HMACSHA256返回不正确的值

HMACSHA256返回不正确的值
EN

Stack Overflow用户
提问于 2014-02-19 00:39:35
回答 1查看 451关注 0票数 1

我对密码学还不熟悉,但是我需要使用HMACSHA256来传递信息。

我写了一个测试方法来测试我的散列方法。我使用在线生成器散列了这个单词: Paul和它们都有相同的base64值,但是当我使用下面的代码时,我得到了一个不同的值。我试着用不同的编码,但我无法得到价值,你能让我知道我可能哪里出错了吗?

代码语言:javascript
复制
[TestClass]
public class HashGeneratorUnitTest
{
    [TestMethod]
    public void TestMethod1()
    {
        string message = "Paul";
        //Pass a string to method.
        string hashedMessage = ShaGenerator.GetHash(message);
        Assert.AreEqual("gYtcxfIdPm5OYHHAYpRSjURZUCIhhEbYt5ME0rdmMno=",
            hashedMessage);
    }
}

public static class ShaGenerator
{
    public static string GetHash(string message, string secret = "")
    {
        var enc = new System.Text.ASCIIEncoding();
        byte[] secretBytes = enc.GetBytes(secret);
        byte[] messageBytes = enc.GetBytes(message);

        using (var hmac = new HMACSHA256(secretBytes))
        {
            byte[] hashedBytes = hmac.ComputeHash(messageBytes);
            string hashedString = Convert.ToBase64String(hashedBytes);
            //Return HMACSHA256 string.
            return hashedString; //returns: "g9gc9FI2RcI3N9ApYePF+si9Uh0p0Q4u2Vm0Wy5qphk="
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-19 01:17:12

您正在测试的基于web的生成器是不正确的。

您的实现正在返回正确的结果。

下面是一个基于web的工具,它返回正确的结果:https://quickhash.com/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21868634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档