The MD5 hash is 128 bits wide, so 2^128 or 340,282,366,920,938,463,463,374,607,431,770,000,000 different keys.
While there are many 16 character strings that have the same hash value as a 4 character string, the chance of choosing one at random is extremely low. There are 4,294,967,296 hashes for 4 character strings compared to 340,282,366,920,938,463,463,374,607,431,770,000,000 for 16 character strings, so the chance that a random 16 character string has the same hash as ANY 4 character string is 1 in 79,228,162,514,264,337,593,543,950,336. Even if you limit the characters to alphanumeric/symbols (26*2 for letters + 10*2 for numbers/symbols = 72 characters), the chances only fall to 1 in 19,408,409,961,765,342,806,016.
http://www.winimage.com/misc/readfile_test.htm has some speed tests for CRC32/MD5. Hashes like MD5 and SHA are relatively slow compared to straightforward algorithms like CRC32, but can still process a lot of data (up to 340mb/sec on an AMD64 3000+).