Использование crypt()
- это нормально, если вы не используете старый режим на основе DES (CRYPT_STD_DES
).Единственная действительная причина для этого - совместимость с устаревшим программным обеспечением, использующим такие хеши паролей.
Вместо этого используйте режимы CRYPT_BLOWFISH
, CRYPT_SHA256
или CRYPT_SHA512
.Это современные алгоритмы хеширования паролей, которые принимают произвольно длинные парольные фразы, используют длинные соли и поддерживают усиление ключей с помощью нескольких итераций.
К сожалению, интерфейс PHP crypt()
несколько неудобен: единственный способ явно выбрать алгоритм, который выwant - это предоставление правильно отформатированного параметра $salt
, что означает, что вы также должны генерировать саму соль.Это, вероятно, все еще проще и безопаснее, чем использование собственного хэшированного пароля.