Я новичок в криптографии, но мне нужно использовать 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="
}
}
}
Спасибо вам ответить знак, вопрос мой метод возвращает: «g9gc9FI2RcI3N9ApYePF + si9Uh0p0Q4u2Vm0Wy5qphk =» в то время как онлайн Генс, включая тот, который вы при условии, возвращает: "gYtcxfIdPm5OYHHAYpRSjURZUCIhEbYt5ME0rdmMno =" –
https://quickhash.com возвращает «g9gc9FI2RcI3N9ApYePF + si9Uh0p0Q4u2Vm0Wy5qphk =» для HMAC SHA256 открытого текста «Пол» с пустым ключом. –
Привет, спасибо! Не видел флажок использовать HMAC, считал, что только правильный SHA256 был единственным. Еще раз спасибо –