Шифрование двустороннее — зашифрованные данные можно расшифровать ключом. Хеширование одностороннее — восстановление невозможно. Для паролей нужно хеширование; для данных, которые нужно прочитать (например, API-ключ) — шифрование.
Случайная строка, добавляемая к паролю перед хешированием. Защищает от rainbow table атак: одинаковый пароль двух пользователей даст разные хеши. bcrypt и Argon2 включают соль автоматически.