C # odpowiednik hash_hmac w PHP

używając .NET i C # muszę dostarczyć ciąg integralności używając HMAC SHA512 do serwera PHP. Używanie w C #:

Encoding encoding = Encoding.UTF8;
byte[] keyByte = encoding.GetBytes(key);
HMACSHA512 hmacsha512 = new HMACSHA512(keyByte);
byte[] messageBytes = encoding.GetBytes(message);
byte[]  hashmessage = hmacsha512.ComputeHash(messageBytes);
return(ByteToString(hashmessage).toUpper());

Ale nie pasuje do kodu PHP hash_hmac ():

$hmac = strtoupper(hash_hmac($pbx_hash, $msg, $binKey));

Próbuję zmienić kodowanie w C # (utf8, ASCII, Unicode) Bez powodzenia.

Próbowałem wielu rozwiązań znalezionych w sieci, ale nic nie daje tego samego ciągu :(

Nie mogę zmienić kodu PHP i nie widzę, co jest nie tak w C #

Edytować To jestByteToString (skopiowane z komentarza):

static string ByteToString(byte[] buff)
{
    string sbinary = "";
    for (int i = 0; i < buff.Length; i++)
    {
        sbinary += buff[i].ToString("X2"); /* hex format */
    }
    return (sbinary);
}    

Po wielu tetsach odkryłem, że otrzymuję te same wyniki, jeśli klucz hash_hmac PHP jest łańcuchem, a nie tablicą bajtów. Wydaje się, że problem dotyczy funkcji konwertującej PHP $ binKey = pack ("H *", $ keyTest);

questionAnswers(3)

yourAnswerToTheQuestion