Я вижу много путаницы между хэшами и алгоритмами шифрования, и я хотел бы услышать еще несколько советов экспертов:
-  Когда использовать хэши против шифрования 
-  Что отличает алгоритм хеширования или шифрования (от теоретического/математического уровня) т.е. делает хеши необратимыми (без помощи радужного дерева) 
Вот некоторые похожие вопросы SO, которые не вдавались в детали, которые я искал:
 В чем разница между Obfuscation, Hashing и Encryption? 
Разница между шифрованием и хешированием







