Remdev
Участник
- Сообщения
- 77
- Реакции
- 19
Нет, это поможет лишь если ваш проект не представляет интересаVine написал(а):Работает, осталось только поставить платежный пароль
Как я понял, благодаря платежному паролю и шифрованию, хакер почти никак не сможет вывести деньги, даже есть у него есть БД?
Remdev
Участник
- Сообщения
- 77
- Реакции
- 19
А и да. md5 настолько быстро перебирается, что использовать глубо уже. Для хеширования паролей есть замечательная функция password_hash(). Если хотите действительно хотите, чтоб если базу утащат, то чтоб не могли пароли подобрать то используйте именно её. Как использовать? Всё просто.
Сначала, поле для хранения пароля делайте не менее 60 символов(а лучше 255)
А далее всё просто. Если вам надо получить хеш пароля(для записи его в базу) используйте функцию password_hash()
password_hash($password, PASSWORD_BCRYPT);
Если же хотите проверить корректность введёного пароля, то просто используйте функцию password_verify()
if(password_verify($password,$hash)) {
echo "Ok";
} else {
echo "Wrong password";
}
И всё. Это намного безопаснее.
Сначала, поле для хранения пароля делайте не менее 60 символов(а лучше 255)
А далее всё просто. Если вам надо получить хеш пароля(для записи его в базу) используйте функцию password_hash()
password_hash($password, PASSWORD_BCRYPT);
Если же хотите проверить корректность введёного пароля, то просто используйте функцию password_verify()
if(password_verify($password,$hash)) {
echo "Ok";
} else {
echo "Wrong password";
}
И всё. Это намного безопаснее.
Последнее редактирование модератором:
Remdev
Участник
- Сообщения
- 77
- Реакции
- 19
Мой способ почти универсален. Т.к. используется соль для шифрования. Т.е. не зная ключа, а ключ может быть как набором буков,символов и цифр,так и именем жены, хрен когда раскодируешь. Ни какие бруты не помогут. Учите матчастьRemdev написал(а):А и да, способ который написал ТС подвержен атаке по времени. Да, атаку сложно реализовать, но на крупных фермах с этим есть смысл заморочиться
Remdev
Участник
- Сообщения
- 77
- Реакции
- 19
Лучше бы вы матчасть учили бы. Ну или узнали бы хотя бы как php сравнивает строки.APTEMOH написал(а):Мой способ почти универсален. Т.к. используется соль для шифрования. Т.е. не зная ключа, а ключ может быть как набором буков,символов и цифр,так и именем жены, хрен когда раскодируешь. Ни какие бруты не помогут. Учите матчасть
Какое отношение это имеет к ключу?Remdev написал(а):Лучше бы вы матчасть учили бы. Ну или узнали бы хотя бы как php сравнивает строки.
Remdev
Участник
- Сообщения
- 77
- Реакции
- 19
Соль в случае с md5 не поможет. Слишком устаревший алгоритм, который достаточно быстро брутиться.APTEMOH написал(а):Какое отношение это имеет к ключу?
Хотя давай по порядку расскажу, что именно здесь не так
1) Ты сначала все символы в пароле преобразовываешь в нижний регистр. Как результат пароли Password, pAssWord, password и PASSWORD будут одни и те же. При бруте паролей мы отсекаем все символы в разном регистре, их проверять не надо. Строчку со strtolower убратьAPTEMOH написал(а):Код:public function md5Password($pass){ $pass = strtolower($pass); return md5("shark_md5"."-".$pass); }
2) Соль ты добавляешь в конце. Как результат, найдя в базе хеш от пароля, который ты знаешь соль брутиться в разы быстрее(особенность алгоритма md5). Соль добавлять в конце к паролю
3) Если каким либо образом злоумышленник узнает соль и у него будет бд(например получил дамп сайта), он может подобрать пароли сгенерировав радужные таблицы. Соль у каждого пользователя должна быть своя.
4) Ты используешь md5 в 2015 году. RFC 6151 выпустили ещё в 2011, специально для таких же "программистов"
Overdos
Местный
- Сообщения
- 36
- Реакции
- 4
Да в ней. В базе пароли без соли, а проверка с солью.Overdos написал(а):Привет всем! Собственно и у меня трабла с логином в игру после установки данных обновлений. По теории сделано всё правильно (по инструкции, поэтапно). Проверки вроде все верные, но ожидаемого результата нет. Может дело в самой функции? Я имею ввиду соль. Буду рад помощи.
Через онлайн md5 сделайте хош пароля с ключом и вставьте в базу. Тогда при сравнении не будет ошибок.
Overdos
Местный
- Сообщения
- 36
- Реакции
- 4
Overdos
Местный
- Сообщения
- 36
- Реакции
- 4
Так, и всё же не могу разобраться
1. Слово соли перевести в md5
2. Пароль и соль тоже перевести в md5 таким видом - словосолипароль в md5
Но тогда получается нужно чтобы все пароли автоматически с солью уже записывались в бд
После выполнения двух действий которые выполнил (описал), результата нет.
1. Слово соли перевести в md5
2. Пароль и соль тоже перевести в md5 таким видом - словосолипароль в md5
Но тогда получается нужно чтобы все пароли автоматически с солью уже записывались в бд
После выполнения двух действий которые выполнил (описал), результата нет.
Overdos
Местный
- Сообщения
- 36
- Реакции
- 4
Много если в ваших словах. "Если да кабы, во рту выросли грибы" (с) Народная мудростьRemdev написал(а):Соль в случае с md5 не поможет. Слишком устаревший алгоритм, который достаточно быстро брутиться.
Хотя давай по порядку расскажу, что именно здесь не так
1) Ты сначала все символы в пароле преобразовываешь в нижний регистр. Как результат пароли Password, pAssWord, password и PASSWORD будут одни и те же. При бруте паролей мы отсекаем все символы в разном регистре, их проверять не надо. Строчку со strtolower убрать
2) Соль ты добавляешь в конце. Как результат, найдя в базе хеш от пароля, который ты знаешь соль брутиться в разы быстрее(особенность алгоритма md5). Соль добавлять в конце к паролю
3) Если каким либо образом злоумышленник узнает соль и у него будет бд(например получил дамп сайта), он может подобрать пароли сгенерировав радужные таблицы. Соль у каждого пользователя должна быть своя.
4) Ты используешь md5 в 2015 году. RFC 6151 выпустили ещё в 2011, специально для таких же "программистов"
Ключ в начале у меня. Можно сделать и так: ключ1.пароль.ключ2. Ключ1 = g43YEge3Y&^%Yhgs2r5@%TRwegvsBGwehede и т.д. , такой же принцип у второго ключа. Между ними пароль. Оба ключа известны только разработчику (ключ в базе НЕ хранится) и они уникальны и не брутятся ничем.
Вот такою соль ничем не взломаешь.
Все! хватит в теме флудить, учите мат часть
Remdev
Участник
- Сообщения
- 77
- Реакции
- 19
А такие ключи дают коллизию на более маленьких строках. Так что учите лучше вы матчасть, а не думайте, что умный такой.APTEMOH написал(а):Много если в ваших словах. "Если да кабы, во рту выросли грибы" (с) Народная мудрость
Ключ в начале у меня. Можно сделать и так: ключ1.пароль.ключ2. Ключ1 = g43YEge3Y&^%Yhgs2r5@%TRwegvsBGwehede и т.д. , такой же принцип у второго ключа. Между ними пароль. Оба ключа известны только разработчику (ключ в базе НЕ хранится) и они уникальны и не брутятся ничем.
Вот такою соль ничем не взломаешь.
Все! хватит в теме флудить, учите мат часть
ilk
Участник
- Сообщения
- 23
- Реакции
- 1