Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
"m.members_l_username='". $username ."', или так: members_l_username LIKE '{$this->ipsclass->input['name']}%', то за безопасность данных нельзя поручиться, это же вероятная возможность SQL-инъекции, не стал тратить время на анализ защищают ли данные в $username, при таком подходе к коду, всех дыр не закрыть никогда.Вместо самого пароля передается хеш hash2 = sha1_hmac(login, password), однако на сервере хранится не он, а его хеш с логином: sha1_hmac(hash2, login). Этим отсекаем возможность залогиниться, если кто-то украл захешированные данные с сервера, например, взяли из базы данных, или прочитали php файл, если хеш данные находятся в нем, как в примере ниже.
…
В файле храним два хеша на основе логина и пароля, один обратный sha1_hmac(pass, login), и один прямой двойной sha1_hmac(sha1_hmac(login, pass), login).
в комплекте отсутствует один из файлов *.js, что делает комплект неработоспособным
Он нормально зашифровывает сообщения, написанные латиницей. Корёжит лишь русскоязычный текст. При этом для нескольких первых символов явно угадывается побитовое смещение, а дальше уже начинается ахинея. Вероятно, там проблемы с 8-м битом.
Эх, если бы кто-то взялся доработать алгоритм...
hash21 = sha1_hmac(login, password). На сервере же хранится хеш hash22 = sha1_hmac(hash21, login). Сможете вычислить hash21, зная только hash22 и login?hash1 = sha1_hmac(password, login) хранится для других целей, и этот хеш отличается от hash21 и hash22.hash1 и hash22 вполне можно потерять, если бы они были недоступны никому, я бы не парился с hash1. Сам пароль не теряется при краже хешей, и злоумышленник остается без hash21, который нужен для авторизации. Докажите мне, что зная login, hash1, hash22 можно вычислить или password, или хотя бы hash21. hash1 используется не для случая кражи хешей, а как ключ для хеширования при передаче данных по небезопасным каналам связи. Одновременная кража хешей и подсмотр трафика позволяет авторизоваться, хотя при этом не выявляет пароль.
Безопасная авторизация с передачей хешированного пароля