#36937 [Opn->Fbk]: key length too long distroys the hash

From: Date: Sat, 01 Apr 2006 17:57:08 +0000
Subject: #36937 [Opn->Fbk]: key length too long distroys the hash
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-95190@lists.php.net to get a copy of this message
 ID:               36937
 Updated by:       tony2001@php.net
 Reported By:      dragos at codersnest dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         mhash related
 Operating System: Suse 9.3 + Windoze XP
 PHP Version:      4.4.2
 New Comment:

I'm afraid "doesn't work" is not enough.
This is what I get:
string(40) "dd1b15a9ea9b697388beedb3a5283754b4a7807d"
string(40) "700877a1dc9bb89d5c1f86a4efc71ed457de8add"

Which one is correct and how do you detect it?


Previous Comments:
------------------------------------------------------------------------

[2006-03-31 20:41:53] dragos at codersnest dot com

same thing hapenned on windowsXP+php 5.1.2 and on Fedora3+php 4.3.11,
even with iconCube and ZendOptimizer disabled

------------------------------------------------------------------------

[2006-03-31 20:35:07] dragos at codersnest dot com

Description:
------------
I tried to do a gateway script which required me to send a hash(SHA1)
of some given data, with a given key. In the beginning it worked, then
after we switched to production, the key changed length from 32 to 194
(hex chars). The key was calculated as pack() binary value from the
original key. At this point, the value returned by mhash() got wrong.
So, basically, I am assuming that there is somewhere a constraint on
the key length, either on pack() there might be a problem, though i've
used that one before.

Reproduce code:
---------------
example 1 (working):
$data = 'some string data';
$mkey = '00112233445566778899AABBCCDDEEFF';
$mac = bin2hex(mhash(MHASH_SHA1,$mac,pack('h*',$mkey)));
This was working!

example 2:
$mkey='496E7465726E6574206765626F72656E2C20656E747769636B656C7420756E6420756D67657365747A742E20656E7465727061796D656E74206661737374206469652067846E6769677374656E205A61686C617274656E20696E2065696E656D20';
This was not workign anymore!

Expected result:
----------------
a correct hash value which to be checked at the gateway again by
calculating the same hash from fields of a form..

Actual result:
--------------
bad hash value


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=36937&edit=1


Thread (3 messages)

« previous php.bugs (#95190) next »