2014-02-19 2 views
0

Я новичок в криптографии, но мне нужно использовать HMACSHA256 для связи с ним.HMACSHA256 Возврат Неверное значение

Я написал метод тестирования для проверки моего метода хеширования. Я использовал онлайн-генераторы для хеширования слова: Paul, и все они имеют одинаковое значение base64, однако, когда я это делаю, используя код ниже, я получаю другое значение. Я пробовал использовать разные кодировки, но я не могу вернуть значение, можете ли вы сообщить мне, где я, возможно, ошибаюсь?

[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=" 
     } 
    } 
} 

ответ

2

Сетевой генератор, с которым вы тестируете, неверен.

Ваша реализация возвращает правильный результат.

Вот это веб-инструмент, который возвращает нужный результат: https://quickhash.com/

+0

Спасибо вам ответить знак, вопрос мой метод возвращает: «g9gc9FI2RcI3N9ApYePF + si9Uh0p0Q4u2Vm0Wy5qphk =» в то время как онлайн Генс, включая тот, который вы при условии, возвращает: "gYtcxfIdPm5OYHHAYpRSjURZUCIhEbYt5ME0rdmMno =" –

+1

https://quickhash.com возвращает «g9gc9FI2RcI3N9ApYePF + si9Uh0p0Q4u2Vm0Wy5qphk =» для HMAC SHA256 открытого текста «Пол» с пустым ключом. –

+0

Привет, спасибо! Не видел флажок использовать HMAC, считал, что только правильный SHA256 был единственным. Еще раз спасибо –

Смежные вопросы