Методы шифрования / дешифрования - PullRequest
4 голосов
/ 05 февраля 2012

Я знаю, что по этому поводу существует более десятка вопросов.Но я хочу знать, будет ли лучше шифровать пароли для системы входа в систему с помощью хэш-методов, таких как sha1, sha512 и т. Д., Или лучше использовать для этого шифры Mcrypt?Методы хэширования, такие как sha, невозможны, и если возможно шифрование с использованием mcrypt.Но безопасно ли использовать mcrypt, так как вы также можете расшифровать?

Ответы [ 3 ]

4 голосов
/ 05 февраля 2012

Пароли не подлежат восстановлению .Смысл их хеширования состоит в том, чтобы удостовериться в том, что в случае взлома базы данных злоумышленник не сможет получить доступ к каждому паролю и, следовательно, к каждой учетной записи пользователя (и каждой учетной записи в других службах, где пароль был повторно использован).

1 голос
/ 05 февраля 2012

Пароли НЕ подлежат восстановлению.Таким образом, вам нужно использовать алгоритмы хеширования.Наиболее популярными являются MD5 и SHA1 .Я не буду предлагать использовать MD5, потому что он может быть легко атакован и есть много сгенерированных хэшей.SHA1 лучше, но он тоже есть.Наиболее безопасным является SHA256 / SHA512 (часть семейства SHA2) на основе this .Хотя проблема с семейством SHA2 заключается в том, что оно в значительной степени основано на SHA1.Это еще не сломано, но это может быть сломано скоро.Если у вас есть время, вы можете портировать один из алгоритмов, созданных для соревнования SHA3 , или менее известный алгоритм.Если вы можете установить расширения, то у конкурентов SHA3 уже есть расширения PHP.

Хорошая таблица уровня безопасности находится в Wikipedia .И если вы выбрали, вы должны гуглить «коллизионная атака на [алгоритм]» и [прообразная атака на [алгоритм] », чтобы увидеть, есть ли атака (Википедия может быть устаревшей).

Кроме того, не делайтене забывайте солить. Это означает, что вы хэшируете $ string + "Wh what" вместо $ string.

1 голос
/ 05 февраля 2012

Для хранения паролей, для которого вам не нужны открытые пароли, вы всегда должны использовать хэш-функцию.Таким образом, вы можете проверить пароли, но потенциальный злоумышленник не сможет узнать пароли в виде простого текста (это актуально, когда пользователи всегда используют один и тот же пароль)

...