# Правила безопасности паролей 1. Пароли пользователей должны оставаться неизвестными для вас. И у вас не должно быть возможности узнать их. 2. Не вводите ограничения на пароли. 3. Никогда не отправляйте пароли по е-мейлу в чистом виде. # Хешируем пароли пользователей Пароли в веб-приложении нужно хешировать, а не зашифровывать. Шифрование — это двухсторонний алгоритм. Хеширование предполагает, что последовательность нельзя вернуть в формат незашифрованного текста. Именно это конечная цель всего процесса. # Используем соль Соль – это дополнительная случайная строка, которая приписывается к паролю и хэшируется вместе с ним. Из полученного таким образом хэша по радужной таблице пароль уже не восстановишь. Разновидности соления паролей: 1. По принципу соления: * уникальная соль для каждого пользователя: индивидуальная для каждого пользователя – таким образом, если соль станет известна злоумышленнику, брутить придется пароль каждого по отдельности. И кроме того, даже если два пользователя мыслят одинаково и придумали идентичные пароли, хэши все равно на выходе будут разными; * глобальная соль: одинакова для всех, используется для всех хэшей; * и то, и другое. 2. По методу хранения соли: * в базе: как правило, индивидуальные соли хранятся в той же базе, что и хэши паролей; часто даже в той же строке; * в коде (читать: в конфиге): глобальную соль обычно хранят не в базе данных, а, например, в конфиге, чтобы нарушителю пришлось потратить время на ее подбор. # Дважды «соленый» хеш К пользовательской соли должна быть добавлена общая соль, которая хранится в другом месте (отдельно от пользовательских данных).