Note that there are some explanatory texts on larger screens.

plurals
  1. POjava hmac/sha512 generation
    primarykey
    data
    text
    <p>I have this php code which generate a <strong>HMAC</strong> (and not a simple message digest):</p> <pre><code>&lt;?php $key = "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF"; $binkey = pack("H*", $key); echo strtoupper(hash_hmac('sha512', "ABC", $binkey)); ?&gt; </code></pre> <p>And with <code>ABC</code> input its output is:</p> <pre><code>100A6A016A4B21AE120851D51C93B293D95B7D8A44B16ACBEFC2D1C9DF02B6F54FA3C2D6802E52FED5DF8652DDD244788A204682D2D1CE861FDA4E67F2792643 </code></pre> <p>And I need to clone it in java.</p> <p>So here is my current java clone :</p> <pre><code>private String generateHMAC( String datas ) { // final Charset asciiCs = Charset.forName( "utf-8" ); Mac mac; String result = ""; try { byte[] bytesKey = PayboxConstants.KEY.getBytes( ); final SecretKeySpec secretKey = new SecretKeySpec( bytesKey, "HmacSHA512" ); mac = Mac.getInstance( "HmacSHA512" ); mac.init( secretKey ); final byte[] macData = mac.doFinal( datas.getBytes( ) ); byte[] hex = new Hex( ).encode( macData ); result = new String( hex, "ISO-8859-1" ); } catch ( final NoSuchAlgorithmException e ) { AppLogService.error( e ); } catch ( final InvalidKeyException e ) { AppLogService.error( e ); } catch ( UnsupportedEncodingException e ) { AppLogService.error( e ); } return result.toUpperCase( ); } </code></pre> <p>But it does not makes the job because for same input (ABC) its ouput is:</p> <pre><code>AA6492987D7A7AC81109E877315414806F1973CC47B897ECE713171A25A11B279329B1BFF39EA72A5EFB7EDCD71D1F34D5AAC49999A780BD13F019ED99685B80 </code></pre> <p>I've tries a lot of other java code but none of them was an exact clone of php version.</p> <p>What did I do wrong?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload