@Iva228

Какова надёжность хеширования в «открытой» среде?

Всем здравствуйте, представьте ситуацию что любой человек может просматривать всю базу данных и исходный код вашего web-сайта, вы конечно же в такой ситуации будете пароли как минимум хешировать, но насколько надёжны алгоритмы хеширования предоставленные в том же самом PHP? Меня интересует насколько быстро будет "взломан" пароль "My_sUper passw0rd", хешированный с помощью одного из алгоритмов доступных в PHP (sha512, ripemd320, whirlpool, tiger192,4 и haval256,5), либо хотя бы как это можно узнать. Также хотелось бы услышать какие есть варианты защиты паролей в данном контексте.
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Можете сделать прикидки по этому бенчмарку
https://gist.github.com/epixoip/a83d38f412b4737e99...

стандартный алгоритм в функции password_hash - BCRYPT
13000 хэшэй в секунду на Nvidia GTX 1080

пароль от 1 до 8 знаков из a-z A-Z 0-9 это 53,459,728,531,456 комбинаций
53,459,728,531,456 / 13000 = 130 лет на гарантированный брут одного такого пароля
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Меня интересует насколько быстро будет "взломан" пароль "My_sUper passw0rd", хешированный с помощью одного из алгоритмов доступных в PHP (sha512, ripemd320, whirlpool, tiger192,4 и haval256,5)


Можно консультроваться с популярными базами Rainbow Tables просто на предмет того поддерживается
ли нужный тип хеша и какова максимальная длинна ключа. Вот для 9-символьного ключа SHA1 нужно качать
690 Gb базу alpha-numeric хешей а для вашего 17 символьного скорее всего таких таблиц не существует.

И это все работает для без-солевого пароля. Если вы изначально в вашей системе добавляли SALT к каждому
паролю - то это делает применение сгенерированных таблица невозможным.

Тоесть хорошая рекомендация в наше время - делать волшебное слово длинее чем 12 символов. И построение
фразы должно быть таким чтобы поиск по справочникам был тоже бесполезен. Ваш ключ также содержит
пробел и это делает применение алфавита alpha-numeric тоже бесполезным. Нужно альфа-нумерик + space.
А таких таблиц я не видел.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 апр. 2024, в 21:56
2000 руб./за проект
18 апр. 2024, в 21:00
150 руб./за проект