Не совпадают хеши полученные на PHP и C#. В чем ошибка? Проблема в алгоритме на C#
Код на PHP:
hash_hmac('sha256',$data, $key);
Код на C#:
//ОСНОВНАЯ ФУНКЦИЯ
public static string HashHMACHex(string keyHex, string message)
{
byte[] hash = HashHMAC(HexDecode(keyHex), StringEncode(message));
return HashEncode(hash);
}
private static byte[] HashHMAC(byte[] key, byte[] message)
{
var hash = new System.Security.Cryptography.HMACSHA256(key);
return hash.ComputeHash(message);
}
private static string HashEncode(byte[] hash)
{
return BitConverter.ToString(hash).Replace("-", "").ToLower();
}
private static byte[] StringEncode(string text)
{
var encoding = new ASCIIEncoding();
return encoding.GetBytes(text);
}
private static byte[] HexDecode(string hex)
{
var bytes = new byte[hex.Length / 2];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = byte.Parse(hex.Substring(i * 2, 2), NumberStyles.HexNumber);
}
return bytes;
}