CRC32 - это, вероятно, худшая вещь, которую вы можете использовать для паролей (кроме, может быть, crc16 :). Циклические проверки избыточности предназначены для обнаружения, если сообщение было повреждено, хотя естественные причины, это тривиально, чтобы генерировать коллизии, используя только алгебру. SHA0 и SHA1 также не работают, хотя, в отличие от md5 (), никто не генерировал столкновение SHA1, но считается, что это возможно в вычислительном отношении с нашей современной технологией.
Любой член семейства SHA-2 должен быть использован. Sha-256 это хорошо, SHA-512, вероятно, больше, чем вам нужно. NIST проводит соревнование SHA-3 прямо сейчас, и оно будет завершено где-то в 2012 году. (Призрак за победу!)