Better hashing methodology

Instead of using a sha1 + crc32 of the private salt, use a random
public salt and let crypt compare them.