title: Why HMAC sha256 return different value on PHP & Javascript
body: <p>I am trying to build a HMAC SHA256 string in Javascript using CryptoJS, my existing code is written in PHP using the Akamai library.</p>
  
  <p>In some cases I am getting different results compared to PHP &amp; I am unable to understand why it is giving me different results</p>
  
  <pre><code>    /* 
         &lt;php&gt; Using native hash_hmac
         Generating key by concatenating char 
      */ 
  
        $signature1 = hash_hmac('SHA256', "st=1453362060~exp=1453363260~acl=/*", chr(63));
        $signature2 = hash_hmac('SHA256', "st=1453362060~exp=1453363260~acl=/*", chr(63) . chr(23));
        $signature3 = hash_hmac('SHA256', "st=1453362060~exp=1453363260~acl=/*", chr(63) . chr(23) . chr(253));
  
      /*
         here is result from php
         signature1 : 3e086bb48ab9aafa85661f9ce1b7dac49befddf117ce2a42d93c92b6abe513ce ( matched: same as JavaScript)
         signature2 : 3667dd414a50f68f7ce083e540f27f68f7d0f18617b1fb1e4788bffeaeab59f6( matched: same as JavaScript)
         signature3 : dd5a20041661046fdee871c8b9e77b3190fbbf85937c098090a1d524719b6aa9 ( not matched: diff from JavaScript)
      */
  
  
      /* 
         &lt;JavaScript&gt; using CryptoJS
         Generating key by concatenating three char 
      */ 
  
      var signature1 = CryptoJS.HmacSHA256("st=1453362060~exp=1453363260~acl=/*", String.fromCharCode(63));
      var signature2 = CryptoJS.HmacSHA256("st=1453362060~exp=1453363260~acl=/*", String.fromCharCode(63) + String.fromCharCode(23));
      var signature3 = CryptoJS.HmacSHA256("st=1453362060~exp=1453363260~acl=/*", String.fromCharCode(63) + String.fromCharCode(23) + String.fromCharCode(253));
  
      /* 
         here is result from JavaScript
         signature1 : 3e086bb48ab9aafa85661f9ce1b7dac49befddf117ce2a42d93c92b6abe513ce ( matched: same as php)
         signature2 : 3667dd414a50f68f7ce083e540f27f68f7d0f18617b1fb1e4788bffeaeab59f6 ( matched: same as php)
         signature3 : 28075dc75de9f22f83e87772f09a89efb007f2e298167686832eff122ef6eb08 ( not matched: diff from php)
      */
  </code></pre>
  
  <p>First two HMAC values are matching but when I append the third char it produces different results, Can anyone please explain why this is. </p>
  
  <p>here is<br>
  <a href="http://codepad.org/qtKsIJtT" rel="noreferrer">PHPFiddle</a> &amp; 
  <a href="http://jsfiddle.net/_anil/5c4yyeao/2/" rel="noreferrer">JSFiddle</a></p>