Friday, November 24, 2006, 12:36:35 PM, Bram wrote:

BK> A.J. Venter wrote:
>> That seemed to work fine - except it turns out that MD5 is even LESS 
>> reliable 
>> than I thought, at least on small data. 
>> I had a bug report (and confirmed it) that you can log into anybody's 
>> account 
>> if you simply know how many characters his password has.
>> 
>> Apparently '123456' generates exactly the same MD5SUM as 'beebob' (for any 
>> particular set of values) !

BK> This is not the case for the MD5 algorithm as defined in RFC 1321.

BK> $ echo 123456|md5sum
BK> f447b20a7fcbf53a5d5be013ea0b15af *-

BK> $ echo beebob|md5sum
BK> bd9dc720ce0f1976d760a803c1d12370 *-

I've just tested FPC functions (in packages/base/hash/md5.pp).
Surprisingly (and providing ground for investigation!), it gives different 
results:

program:
  Writeln('MD5 (''123456''): ', MDPrint(MDString('123456', 5)));
  Writeln('MD5 (''beebob''): ', MDPrint(MDString('beebob', 5)));

output:
MD5 ('123456'): e10adc3949ba59abbe56e057f20f883e
MD5 ('beebob'): 95ee914c147ed0d25a9064d0c3ce2019

Nevertheless, two given strings have different hash values, as they
should.

BK> Maybe you somehow only hash the string length? E.g. you do a 
md5(password[1])?

Most probably, this or similar bug is the case. Even weak stuff like
CRC must give different results for different strings...

-- 
Best regards,
 Sergei


_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to