Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

hmac_sha256 in php and c# differ

Tags:

c#

php

hashcode

this is my PHP code:

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

and this is my C# code:

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

unfortunately both results differ. Can anyone give me a hint?

like image 313
tanascius Avatar asked Mar 30 '09 21:03

tanascius


1 Answers

My C# is not the best but i got it to work, what you need to do is to convert your byte array results to 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
like image 131
Ólafur Waage Avatar answered Sep 23 '22 06:09

Ólafur Waage