Search code examples
c#php.nethmacsha1

HMACSHA1 from C# To PHP


I am trying to understand these line of code from C# (.Net) method to create a signature. However, I would like to do the same in PHP but not quite understand what it does in C#.

I wonder if any .net developer out there can help me to interpret the code below in 'English'?

Many thanks

HMAC hasher;

            Byte[] utf8EncodedString = Encoding.UTF8.GetBytes(String.Format("{0}:{1}:{2}", MethodName, TimeStamp, AccessID));

            hasher = HMACSHA1.Create();

            hasher.Key = Encoding.UTF8.GetBytes(AccessKey);

            Byte[] hashResult = hasher.ComputeHash(utf8EncodedString);

            return Convert.ToBase64String(hashResult);

Here is my PHP code. Is this correct?

$signatureString = $methodName.':'.$timeStamp.':'.$accessID;
return hash_hmac('sha1', $signatureString, $accessKey, false);

Update: 30-05-2012

Just got it to work now

$signature = base64_encode(hash_hmac('sha1', $signatureString, $accessKey,true));

Solution

  • Answer on php.net for you http://www.php.net/manual/ru/function.hash-hmac.php#105099