Хеширование, как упоминалось в предыдущих постерах, определенно является односторонней операцией. Он принимает (потенциально большие) входные данные и быстро обрабатывает входные данные таким образом, что выходные данные являются небольшими, но очень уникальными (на основе входных данных) выходными данными. Как по конструкции, так и по характеру наличия выходных данных небольшого размера, хеш не может быть отменен, так как исходный ввод был потерян в преобразовании. Обычные алгоритмы хеширования включают семейство Message Digest (обычно MD5) и семейство SHA, которое вы упомянули в своем вопросе.
Опять же, как упоминалось в предыдущем постере, если вы ищете двустороннюю операцию, шифрование - это то, что вы ищете. Более того, если вы хотите, чтобы один и тот же пользователь зашифровал и расшифровал строку, придерживайтесь симметричного шифрования. Некоторые распространенные алгоритмы, используемые на практике сегодня, это AES, DES и Blowfish.