Hashing and encryption - what do you need to know for sure?