Перейти на BCrypt

3

Предлагаю обсудить такую важную тему, как переход на BCrypt.

В данный момент, если юзер не задаст wa_password_hash функцию, то по умолчанию будет использоваться обычный md5 в один проход без всяких солей и прочего (или я ошибаюсь?). Данные пароли можно расшифровывать на GPU очень быстро.

Предлагаю рассмотреть переход на BCrypt (PHP 5.5+). Если не брать в расчет версию PHP, то алгоритм можно сформировать как-то так:

  1. Юзер вводит пароль
  2. Если в установке зарегистрирована функция wa_password_hash, сравниваем с результатом этой функции, дальше не идем, т.к. скорее всего пароль уже сильнее чем просто md5.
  3. Если функции нет, то берем значение хеша лежащего в базе, если 32 символа - значит md5, в противном случае - bcrypt.
  4. Если md5, тогда сравниваем md5 пароля, который ввел юзер, с хешем, который только что взяли из базы, если совпадают - обновляем значение хеша на bcrypt.
  5. Если BCrypt, то...
  6. В следующий раз получим из базы >32 символа, и уже пойдем по ветке сценария на BCrypt.

Или, как минимум, рассмотрите генерацию соли при установке, как это сделано в том же Wordpress.


2 комментария

  • 0
    Genasyst Genasyst 23 сентября 2017 01:00 #

    Никто не мешает сделать своё хеширование в конфигурации, кому надо те делают.

    • +1
      Syrnik.com Syrnik.com 25 сентября 2017 12:30 #

      Он хочет на работающем проекте миграцию на более стойкое хэширование. И чтоб без принудительной смены паролей через восстановление. То есть перехэшировать, если нужно, при очередном логине

      Добавить комментарий

      Чтобы добавить комментарий, зарегистрируйтесь или войдите