Чем выгодней шифровать пароли?

Статус
В этой теме нельзя размещать новые ответы.
серпент или 2рыбы Для просмотра ссылки Войди или Зарегистрируйся
а ещё лучше оба.
да, это параноидально, но ооочень сложноломаемо.
 
Как раз через пару дней наткнулся на новые возможности php5.5, думаю что cryprt будет предпочтительней на данный момент.
Если надо сделать по быстрому на коленке, тогда md5() + salt.

Если подходить ответственно и с оглядкой на будущее, тогда однозначно надо использовать crypt(). Если разработка на php5.5, тогда: password_hash() и password_verify(). Если еще не работаете с php5.5 (а сидите на 5.4 или 5.3), тогда вставляем в код CMS этот скрипт (Для просмотра ссылки Войди или Зарегистрируйся - или делаем require() ) и используем те самые функции password_hash() и password_verify().

из плюсов:
1. современный алгоритм шифрования
2. можно самому задать количество итераций (cost - обозначает алгоритмическую стоимость вычисления пароля)
3. не надо возиться с salt, если функции password_hash() не передана salt, тогда она ее сама генерирует
4. автоматически сгенерированные salt не надо хранить в БД
 
А если на рабочем проекте пароли пользователей криптовались md5() а теперь я хочу юзать crypt() как быть?
Можно ли перекриптовать пароли md5() в crypt()?
Php на сервере 5.4.12
 
можно их докриптовать. и так бесконечное число раз.
 
Можно ли перекриптовать пароли md5() в crypt()?
Нет (в общем случае... часть паролей можно, конечно, по "радужным" таблицам восстановить)

Можно (на некоторое время?) ввести двойную проверку (проверять две функции - новую и старую. В случае если md5(пароль) совпадает с хэшем из базы - перезаписать хэш, используя введённый пароль и новую функцию). Как вариант - сделать принудительную рассылку (со сбросом пароля).

ну, как оказалось на самом деле, "дёшево и сердито" этого нельзя сделать.
Я там намудрил - по мере развития мысли пост дополнял, вот и получилось.

Имел ввиду, что нельзя в общем случае. Отдельные пароли можно восстановить по радужным таблицам (вроде 123 321 qwerty) При этом что-то 17-значное с двумя регистрами, цифрознаками вряд ли попадётся в такой табличке. Промежуточные варианты /10-значные, но простые/ - как повезёт.
 
Последнее редактирование модератором:
Перекриптовать нет, а вот сделать так чтоб пароли работали на старом способе и новом - можно. Например так в опенкрате при переходе с md5 на sha-1 сделали.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху