hmac_sha256 в php и c # отличается

это мой PHP-код:

hash_hmac( "sha256", utf8_encode( $filename ), utf8_encode( $password ) ); 

и это мой код C #:

 var hmacsha256 = new HMACSHA256( Encoding.UTF8.GetBytes( password ) ); hmacsha256.ComputeHash( Encoding.UTF8.GetBytes( filename ) ); 

к сожалению оба результата различаются. Может ли кто-нибудь дать мне подсказку?

Мой C # не самый лучший, но я получил его на работу, вам нужно преобразовать результаты массива байтов в hex.

PHP

 $hash = hash_hmac( "sha256", utf8_encode("Filename"), utf8_encode("Password")); echo $hash; // 5fe2ae06ff9828b33fe304545289a3f590bfd948ca9ab731c980379992ef41f1 

C #

 string password = "Password"; string filename = "Filename"; var hmacsha256 = new HMACSHA256(Encoding.UTF8.GetBytes(password)); hmacsha256.ComputeHash(Encoding.UTF8.GetBytes(filename)); foreach(byte test in hmacsha256.Hash) { Console.Write(test.ToString("X2")); } // 5FE2AE06FF9828B33FE304545289A3F590BFD948CA9AB731C980379992EF41F1