- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
// то проверяем его куки
// вдруг там есть логин и пароль к нашему скрипту
if (isset($_COOKIE['login']) && isset($_COOKIE['password'])) {
// если же такие имеются
// то пробуем авторизовать пользователя по этим логину и паролю
$login = mysql_real_escape_string($_COOKIE['login']);
$password = mysql_real_escape_string($_COOKIE['password']);
// и по аналогии с авторизацией через форму:
// делаем запрос к БД
// и ищем юзера с таким логином и паролем
$query = "SELECT `id`
FROM `users`
WHERE `login`='{$login}' AND `password`='{$password}'
LIMIT 1";
$sql = mysql_query($query) or die(mysql_error());
// если такой пользователь нашелся
if (mysql_num_rows($sql) == 1) {
// то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
$row = mysql_fetch_assoc($sql);
$_SESSION['user_id'] = $row['id'];
авторитизация из кук ну сколько не говори не храни в куках пароли и логины нет найдется один говонокодер которому все не почем и учит детей плохому
Lure Of Chaos 14.07.2010 10:56 # −1
Vasiliy 14.07.2010 11:07 # −1
Lure Of Chaos 14.07.2010 11:14 # −1
3.14159265 14.07.2010 11:24 # 0
Lure Of Chaos 14.07.2010 11:28 # 0
Vasiliy 14.07.2010 11:35 # −5
3.14159265 14.07.2010 11:51 # +1
операция обращения хеша - по сложности превосходит подбор пароля это раз.
>>>8 латинских буков и цыфер
причем тут это???
MD-5 128 бит - причем там могут быть абсолютно рандомные вещи - это 16 байт.
Хотим цифры и буквы - ОК Base64 увеличивает на 4/3 длину - имеем 16*4/3=64/3~21 символ
а еще есть SHA-256 - который в 2 раза длинней
удачи в подборе 256 бит - для полного перебора может не хватит всей энергии Земли, считай хоть на протонно-фотонно-нейтронных компьютерах
3.14159265 14.07.2010 11:53 # 0
Vasiliy 14.07.2010 11:56 # −10
for ($i=0;$i<10;$i++)
if (md5($i)==$hash) {echo "Есть $i"; break;}
вот все пароли от 0 до 10 и ничего сложного
длина кеша роли не играет мы не кеш подбираем а пароль а он врядли длинее 8 -10 символов
3.14159265 14.07.2010 12:05 # +3
))))), вот это труЪ чушь
ага и в нем только цифры от нуля до девяти ))
кстати главный прикол хеша, то что 17 символьный пароль и 3-х символьный могут иметь одинаковый хеш - это называется коллизия
>>>длина кеша роли не играет
))))) реально чушь, хеш и кэш - разные вещи
играет, коллизии
3.14159265 14.07.2010 12:39 # +1
if (md5($i)==$hash) {echo "Есть $i"; break;}
это и есть подбор пароля,
читайте ВНИМАТЕЛЬНО что я написал,
операция обращения хеша - по сложности превосходит подбор пароля.
потому тут именно так - подбирается пароль, а не обращается хеш и это главная фича - мы можем найти другой пароль имеющий такой же хеш
Анонимус 15.07.2010 01:22 # 0
это совершенно правильно, если у Вас в качестве пароля можно использовать только один символ и именно цифру. Обычно же в пароле предлагают алфавитно цифровые символы и например 8 символов (для простоты представим, что в пароле ВСЕГДА 8 символов)
В английском алфавите 28 букв (кажется). Регистр важен, так что 56. Плюс цифры (знаки подчеркивания пока упустим): 66.
Тоесть один символ может иметь до 66 различных значений.
Даже если мы точно знаем, что этих символов восемь, то максимальное число значений 66 в степени 8. Тоесть 360040606269696.
В качестве домашнего задания предлагаю посчитать время, нужное для цикла:
for ($i=0;$i<360040606269697;$i++)
if (md5($i)==$hash) {echo "Есть $i"; break;}
Как видите -- даже в упращенном варианте (с заранее известным кол-вом символов в пароле) это будет не быстро
Webkill 15.07.2010 02:26 # −1
Что будет, если распараллелить на несколько машин? Я хз, там наверное какие-то нелинейные функции будут.
Мне кажется, их понадобится стока, что легче заплатить наёмникам, которые залезут в нужный офис и выкрадут компьютероы с дисками)
Cyanide 15.07.2010 10:37 # 0
Анонимус 14.07.2010 21:31 # 0
Cуществуют способы брут-форса, которые на обычных компах занимают эпохи, а на квантовых -- секунды.
Lure Of Chaos 14.07.2010 22:59 # 0
Анонимус 14.07.2010 23:26 # 0
Lure Of Chaos 14.07.2010 23:33 # 0
Webkill 14.07.2010 23:29 # 0
Ага, допустим, есть 2 + 2 = 4; Как обратить обратно в слагаемые 4? Это может быть 4 + 0. Это может быть 3 + 1. Васька он вроде школьник и студент, ему за такие косяки можно простить.
Lure Of Chaos 14.07.2010 23:33 # 0
Webkill 14.07.2010 23:34 # −1
Анонимус 14.07.2010 23:45 # 0
Разброс у него конечно говененький (мапы на нем лучше не строить), но это хеш, и покажите мне того человека, который мне его обратит. :)))
Lure Of Chaos 14.07.2010 23:54 # 0
Анонимус 14.07.2010 23:56 # 0
Lure Of Chaos 14.07.2010 23:59 # 0
Webkill 15.07.2010 00:27 # −1
Анонимус 15.07.2010 01:05 # 0
Думаю, что это не реально.
Возьмем граничный случай:
f(1) = 123
f(2) = 246
Ну и как ту понять -- что такое f?
Webkill 15.07.2010 02:21 # −1
Нужны достаточно большие выборки, и то не факт, что будетв ерно. Однако вероятность попасть верно куда больше, чем если ничего не делать :)
bugmenot 15.07.2010 09:06 # 0
Webkill 15.07.2010 17:07 # −3
WebKill_HochetVBan 15.07.2010 19:41 # +2
На гуугле забанили? Хотя я их понимаю...
WebKill_HochetVBan 15.07.2010 19:49 # 0
Webkill 15.07.2010 21:53 # −3
WebKill_HochetVBan 15.07.2010 22:33 # +3
Lure Of Chaos 15.07.2010 00:13 # −1
1.исходная область велика (скажем, натуральные числа), область отображения конечна(скажем, величиной в двойное слово)
2.вычисление прямого отображения эффективно (требуется краткое время)
3.вычисление обратного отображения неэффективно (невозможно теоретически или практически быстро вычислять)
Lure Of Chaos 15.07.2010 00:14 # −1
Анонимус 15.07.2010 00:17 # 0
Lure Of Chaos 15.07.2010 00:23 # 0
Анонимус 15.07.2010 01:03 # 0
Я не претендавал на стойкость -- просто хотел сказать что это ТОЖЕ хеш.
Lure Of Chaos 15.07.2010 01:04 # −1
Анонимус 15.07.2010 01:07 # 0
Так что хеш может быть стойким для программы, прячущей историю Вашей аськи от младшей сестры, но совершенно не стойкий для ФБР или ЦРУ
Lure Of Chaos 15.07.2010 01:09 # −1
Анонимус 15.07.2010 01:13 # 0
Посмотрите в википедии "Hash function".
Или посмотрите на функцию hashCode у джававских врапперов для Number: там hash(x) = x :)
Kornew 15.07.2010 10:02 # +1
koodeer 15.07.2010 14:39 # −1
Webkill 15.07.2010 15:23 # −1
Анонимус 14.07.2010 14:18 # +1
3.14159265 14.07.2010 14:58 # 0
Vasiliy 14.07.2010 15:03 # 0
Анонимус 14.07.2010 15:11 # +2
Если Вы делаете один скрипт из пяти строк (а PHP был создан именноч то бы делать такие скрипты) то это нормально.
Если Вы делаете серьезное приложение (делать его на php неудбно, но можно) то даже матерые PHPшники стараются его разделять.
но у них это почти никогда не получается
Vasiliy 14.07.2010 15:14 # 0
Анонимус 14.07.2010 15:26 # 0
Правда за последние 5 лет ситуация улучшилась: в 2005м году был полный мрак. Теперь хотя бы есть всякие zend, cake итд... Но самые известные php проекты (типа phpbb) все равно являют собой кашу, как и 80% существующих проектов(((
Vasiliy 14.07.2010 15:44 # +1
Анонимус 14.07.2010 15:46 # 0
Lure Of Chaos 14.07.2010 15:55 # 0
Vasiliy 14.07.2010 16:03 # +1
Lure Of Chaos 14.07.2010 18:57 # −2
Webkill 14.07.2010 19:05 # −4
Lure Of Chaos 14.07.2010 19:08 # 0
This is obvious 14.07.2010 19:38 # +2
Lure Of Chaos 14.07.2010 20:26 # +3
Webkill 14.07.2010 23:09 # −4
WebKill_HochetVBan 15.07.2010 19:54 # +2
Webkill 15.07.2010 21:54 # −3
WebKill_HochetVBan 15.07.2010 22:32 # −3
aerowave 14.07.2010 16:07 # +1
bugmenot 15.07.2010 09:09 # +1