Законность зависит от страны, в которой вы живете. Но есть и лучшие практики. И наилучшей практикой является шифрование паролей пользователей. Таким образом, если кто-то проникнет в вашу базу данных, он не сможет получить длинный список паролей и попробовать каждый из них в ebay, yahoo mail и gmail. Пользователи обычно используют одну и ту же пару имени пользователя и пароля для многих сайтов.
Как указывает Джон в комментарии, конечно, есть разница между хешированием и шифрованием. Хеширование - это односторонний, разрушающий данные процесс, который принимает строку произвольной длины в качестве входных данных и выводит строку фиксированной длины. Эта строка определяется таким образом, что изменение любого отдельного бита в исходном вводе приведет к тому, что хеш будет другим. Следовательно, если у вас есть хэш, восстановить исходный текст невозможно (т. Е. Восстановить пароль невозможно).
С другой стороны, собственно шифрование - это метод, при котором вы можете восстановить исходный пароль, зная секретные ключи, пароли и т. Д.
Обычно вы хотите хешировать пароли, а не шифровать их: это не нужно, и это сложнее в настройке. Вы также не должны восстанавливать пароль: вы просто восстановите их.