On this topic, I might actually say that a concatenation of two hashes is very secure if the two hashes are sufficiently different. Although MD5 and SHA1 are reasonably similar, let's suppose for a moment that they use entirely different mechanisms. If this were so and the crack time for MD5 was 2**50, for SHA1 2**65, then the crack time for CONCAT(MD5(string), SHA1(string)) would be about 2**115. This is because you need to find something that colides for both. This is *far* more difficult and therefore far more collision resistant. Unfortunately this requires 288 bits - far more than each of the old hashes. Still, that much memory doesn't tend to be a problem ;). Regards, Michael Cordover -- http://mine.mjec.net/