php-5.2.17、apache-2.2.17、mhash-0.9.9.9を使って下記スクリプトを実行しました。
<?php
echo "mhash:<br>";
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "The hash(MD5) is " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "The hmac(MD5) is " . bin2hex($hash) . "<br >";
$hash = mhash(MHASH_SHA1, $input);
echo "The hash(SHA1) is " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_SHA1, $input, "Jefe");
echo "The hmac(SHA1) is " . bin2hex($hash) . "<br >";
?>
すると結果が次のようになってしまいます。
mhash:
The hash(MD5) is 00000000000000000000000000000000
The hmac(MD5) is 00000000000000000000000000000000
The hash(SHA1) is 8f820394f95335182045da24f34de52bf8bc3432
The hmac(SHA1) is effcdf6ae5eb2fa2d27416d5f184df9c259a7c79
同じスクリプトを同じバージョンのミドルウェア(mhash、php、apache)でx86版Solarisで実行すると問題無いのですがバグでしょうか?