* arawak wrote on Wed, Jul 10, 2002 at 19:26 +0100:
Therefore could be possible to have another password that when compared to the hashed value it could give the be the same result of my ABC password?
Yes, this is called a collision. With the crypt algorithm, which produces 56 bit results, every 72,057,594,037,927,936th (==2^56) password gets the same hash value. With other words, if you calculate a plain text value for each of those possiblities, you have a reverse-translation table. But this table would be very large and expensive to build - even expensive to store... To say a word about the salt. To explain the need, just thing a second about hashing. Imagine, many people would use words as passwords. If you have, let's say a million words, you could crypt a million words and get a million crypt values, this table would have a size of 7,000,000 bytes only. With that table, you could retranslate the crypt value to the plaintext. To avoid that, a password is salted with one of 4096 values (on crypt, typical MD5 "crypts" use much larger ranges). The value is taken by random. So every password has 4096 possible results. To be able to decrypt, the salt itself is stored in plain as the first two bytes of the password "hash". So for a million words you would need 4 billion precalculated hashes. Antoher advantage: when you chose the same password twice, you would ususally get different crypt values. With MD5 all those is similar but with more bits :) IIRC MD5 uses 128 bits and 2^128 evaluates to: 340,282,366,920,938,463,463,374,607,431,768,211,456 which is quite nice large :) oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.