Intereting Posts
Преобразование php-кода в javascript-код Создание круговой диаграммы из php с использованием таблицы mysql PHP: как проверить, был ли пользователь уже зарегистрирован и иным образом перенаправлен на страницу входа в систему Работа Php Cron в Windows XAMPP Как использовать имена столбцов в PHP PDO без обязательных столбцов Как обрабатывать push-уведомления API Google Calendar? Как перенаправить весь веб-трафик на определенную страницу? Как решить ошибку «не удается передать параметр по ссылке» в PHP? PHP Soap Server: невозможно получить доступ к параметрам запроса soap в моем вызываемом классе PHP не может загружать динамическую библиотеку (mongo.so) Обнаружение конфликтов перекрытия событий календаря с использованием PHP PHP: как я могу сортировать и фильтровать «массив», то есть объект, реализующий ArrayAccess? Уникальные и временные имена файлов в PHP? Как получить доступ к пользовательскому атрибуту изображения в list.phtml в Magento Как использовать DATE_ADD в критериях Yii $?

Альтернатива склепу ()

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

Некоторые из моих проблем:

  • не все алгоритмы поддерживаются в каждой системе
  • иногда соль предварительно заносится в результат (кажется, проблема с безопасностью)

Я хочу что-то, что работает с PHP 4.3+.

Есть ли что-нибудь доступное, или я должен придерживаться crypt() ? Я думал об использовании md5(md5($password).$salt) . Спасибо за понимание.

В crypt нет ничего плохого

Если ваш сервер не поддерживает его, используйте другой сервер.

Вы никогда не должны использовать MD5 для хеширования паролей (или даже SHA1, если на то пошло)

Используйте либо bcrypt (метод blowfish crypt ), либо pbkdf2

Существует реализация pbkdf2 здесь: Шифрование паролей с помощью PHP для хранения данных с использованием стандарта RSA PBKDF2

Дополнительная информация о том, почему и как здесь:

  • Какой метод хэширования пароля я должен использовать?
  • Специалисты по безопасности рекомендуют bcrypt для хранения паролей?

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

Теперь: пока вы не переносите хэши паролей из одной системы в другую, а последние не поддерживают алгоритм по умолчанию первого, по определению ничего плохого не произойдет. Поскольку PHP 5.3 существуют встроенные алгоритмы в PHP, такие как Blowfish, которые гарантированно будут доступны.