Other PHP function:

<?php
function hmac_sha1($data, $key, $raw_output=FALSE) {
$block_size = 64;   // SHA-1 block size

if (strlen($key) > $block_size) {
$k = pack("H*", sha1($key));
} else {
 $k = str_pad($key, $block_Size, "\x00", STR_PAD_RIGHT);
}

$ki = '';
 for($i = 0; $i < $block_size; $i++) {
$ki .= chr(ord(substr($k, $i, 1)) ^ 0x36);
}
 $ko = '';
for($i = 0; $i < $block_size; $i++) {
$ko .= chr(ord(substr($k, $i, 1)) ^ 0x5C);
 }

$h = sha1($ko . pack('H*', sha1($ki . $data)));
if ($raw_output) {
 return pack('H*', $h);
} else {
return $h;
 }
}

echo hmac_sha1("The quick brown fox jumped over the lazy dog.", "secret");
?>

Result:

5d4db2701c7b07de0e23db3e4f22e88bc1a31a49


2013/3/23 silvioprog <silviop...@gmail.com>

> Hello,
>
> I could be wrong, but I think that Synapse function have a bug. See:
>
> Using PHP:
> <?php
> echo hash_hmac("ripemd160", "The quick brown fox jumped over the lazy
> dog.", "secret");
> ?>
> Result:
> b8e7ae12510bdfb1812e463a7f086122cf37e4f7
>
> Using the http://www.freeformatter.com site
> Result:
> 5d4db2701c7b07de0e23db3e4f22e88bc1a31a49
>
> Using Synapse:
> uses
>   synacode;
> begin
>   Write(HMAC_SHA1('The quick brown fox jumped over the lazy dog.',
> 'secret');
> end.
> Result:
> ]M?p { ? #?>O"?c I
>

-- 
Silvio Clécio
My public projects - github.com/silvioprog
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to