$md5 / $crc produce a unique string for any input you give them. In other words, no two different inputs can produce the same output. This means that you can use an md5/crc result as a unique ID, something like a fingerprint: no two people in the world have the same fingerprints.

I'm going to add to your post, only because some of your wording is misleading (unintentionally) on a technical level. I know you know this info already, it's for other readers.

The reason there are different "fingerprinting" methods, such as CRC16 CRC32 and MD5, is because these methods each have different levels of accuracy. No method can make a completely unique fingerprint without using some form of lossless compression (like ZIP files). Of corse, any lossless methods would produce a string much to large to be used conveniently.

CRC16 produces a 16bit (2 byte, 4 half-byte) "Check Sum" or "hash" of the input string. You may recall old DOS programs giving the error CHECKSUM ERROR: FE3C should be 2D2E, etc. This is because whatever data was checked for integrity came back with a different result. CRC16 has a 1 in 65536 chance of error.

CRC32 produces a value like CRC16, but it's 32bit (4 byte). It is still commonly used in most 32bit programs, because it conveniently fits in a 32bit variable. CRC32 has a strong 1 in 4294967296 (4 billion) chance of error. You will be hard pressed to find 2 like-sized files with identical CRC32 checksums.

MD5 produces a 128 bit (16 byte) hash based off a similar but different technique as CRC uses. The accuracy of an MD5 is a whopping 1 in 340282366920938463463374607431768211456 (that's 340 undecillion). I don't know if anyone has successfully produced 2 different files with a matching value yet.

As far as producing an MD5 hash from a password, the purpose here is to hide the actual password from prying eyes. In most cases, possessing the MD5 hash is of no use since it cannot be entered AS a password. It would also take over 2^128 (340 undecillion) cpu cycles to extract the original password (and then there's the possibility it's still incorrect).

- Raccoon


Well. At least I won lunch.
Good philosophy, see good in bad, I like!