<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: PHP md5() для страницы входа]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме PHP md5() для страницы входа форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 13 Aug 2026 19:10:08 -0400</pubDate>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396897">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Моё решение: #!/usr/bin/php5<br />&lt;?php<br />class LoginMikrotik {<br />	var $urlLogin = 'http://hostpot.com/login';<br />	var $urlLogout = 'http://hostpot.com/logout';<br />	var $myPassword = 'secret';<br />	var $myUsername = 'username';<br />	<br />	function genChapPassword() {<br />		// создаём curl ресурс<br />		$ch = curl_init();<br />		// устанавливаем URL<br />		curl_setopt($ch, CURLOPT_URL, $this-&gt;urlLogin);<br />		// возвращать ответ в виде строки<br />		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />		// в $output сохраняется результат<br />		$output = curl_exec($ch);<br />		// закрываем curl, чтобы освободить ресурсы<br />		curl_close($ch);<br />		$lines = explode(PHP_EOL, $output);<br />		foreach ($lines as $line) {<br />			if (strpos($line, 'hexMD5')) {<br />				$match = array();<br />				preg_match('/\'([^\']*)\'.*\'([^\']*)\'/', $line, $match);<br />				if(count($match) == 3) {<br />					$pass = '';<br />					$chapId = utf8_decode($match[1]);<br />					$chapChallenge = utf8_decode($match[2]);<br />					eval("\$pass = md5(\"$chapId\" . \$this-&gt;myPassword . \"$chapChallenge\");");<br />					return $pass;<br />				}<br />			}<br />		}<br />		return false;<br />	}<br /><br /><br />	function login() {<br />		$password = $this-&gt;genChapPassword();<br />		if (!$password) {<br />			echo "Ошибка!";<br />		}<br />		$ch = curl_init();<br />		// устанавливаем URL<br />		curl_setopt($ch, CURLOPT_URL,$this-&gt;urlLogin);<br />		curl_setopt($ch, CURLOPT_POST, 1);<br />		curl_setopt($ch, CURLOPT_POSTFIELDS, "username=".$this-&gt;myUsername."&password=" . $password . "&popup=true&dst=");<br />		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br />		$server_output = curl_exec ($ch);<br />		$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);<br />		curl_close ($ch);<br />		echo "\nкод: " . $httpcode;<br />		echo "\nответ: " . $server_output;<br />	}<br /><br />	function logout() {<br />		$ch = curl_init();<br />		curl_setopt($ch, CURLOPT_URL, $this-&gt;urlLogout);<br />		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />		$output = @curl_exec($ch);<br />		curl_close($ch);<br />		return $output;<br />	}<br /><br />}<br /><br /><br />#использование:<br />echo "действие: " . $argv[1] . "\n";<br />$login = new LoginMikrotik();<br /><br />switch ($argv[1]) {<br />	case 'start':<br />		$login-&gt;login();<br />		break;<br />	case 'stop':<br />		$login-&gt;logout();<br />		exit(0);<br />		break;<br />	default:<br />		break;<br />} get code: <noindex><a href="https://gist.github.com/fitorec/c3d5495327d982095667" target="_blank" rel="nofollow" >https://gist.github.com/fitorec/c3d5495327d982095667</a></noindex> <br />
			<i>14.01.2016 05:42:00, fitorec.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396897</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396897</guid>
			<pubDate>Thu, 14 Jan 2016 05:42:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396896">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			С фиксированным паролем — да. Если вы хотите, чтобы пользователь вводил уникальный пароль и он при этом шифровался, то лучше всего с этим справится скрипт md5.js. Мне показалось, что эта тема уже звучала знакомо. <br />
			<i>21.07.2013 12:46:00, SurferTim.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396896</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396896</guid>
			<pubDate>Sun, 21 Jul 2013 12:46:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396895">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Да, код здесь работает нормально: <noindex><a href="http://forum.mikrotik.com/t/what-exactly-are-chap-id-chap-challenge/49318/3" target="_blank" rel="nofollow" >http://forum.mikrotik.com/t/what-exactly-are-chap-id-chap-challenge/49318/3</a></noindex> <br />
			<i>21.07.2013 12:33:00, chillifire.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396895</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396895</guid>
			<pubDate>Sun, 21 Jul 2013 12:33:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396894">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Но это не принесло никакого результата. В чём проблема? Ты не забыл скопировать файл md5.js на свой сервер? Если его там нет, ничего не заработает. Кстати, как ты собираешься передавать PHP-код на клиентскую сторону, чтобы пароль шифровался перед отправкой на роутер или хотспот? И как ты собираешься его запускать? PHP — это серверный язык, а JavaScript — клиентский. <br />
			<i>21.07.2013 10:43:00, SurferTim.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396894</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396894</guid>
			<pubDate>Sun, 21 Jul 2013 10:43:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396893">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Ты прочитал ссылку, которую я дал в своём посте в разделе «Редактировать»? Там есть пример кода на PHP. Если быть точным, когда ты сохраняешь эти октавные числа в переменную, они превращаются в строку. Нужно сделать ещё один шаг, чтобы преобразовать их перед генерацией md5. <br />
			<i>21.07.2013 10:32:00, Devil.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396893</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396893</guid>
			<pubDate>Sun, 21 Jul 2013 10:32:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396892">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо, что описали своё решение, но ваш ответ: $hash = md5(“\373”.‘test’.“\314\135\024\000\354\025\252\076\261\347\222\151\146\002\25<WBR/>&shy;0\265”); для меня слишком непонятен. Чем это отличается от: $pwd = md5($chapid.$password.$chapchallenge);? Особенно учитывая, что chap-id и chap-challenge не захардкожены, а приходят в переменных. Я пробовал так: $pwd = md5(‘"’.$chapid.‘"’.$password.‘"’.$chapchallenge.‘"’); Но это не дало никаких улучшений. Можете, пожалуйста, поделиться точным PHP-кодом? <br />
			<i>21.07.2013 10:10:00, chillifire.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396892</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396892</guid>
			<pubDate>Sun, 21 Jul 2013 10:10:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396891">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Для тех, кому интересно, мне наконец удалось заставить работу md5-хэша через PHP. Важно заметить, что эти \nnn — это не обычные символы. Каждый из них представляет восьмеричное значение. Чтобы получить правильный md5-хэш в PHP, нужно делать так: $hash = md5("chap-id".password."chap-challenge"); Например: $hash = md5("\373".'test'."\314\135\024\000\354\025\252\076\261\347\222\151\146\002\25<WBR/>&shy;0\265"); Надеюсь, это кому-то поможет, потому что, хотя кажется простой задачей, я провёл бесчисленное количество часов, ища проблему и лучший способ её решения. П.С.: генерация правильного md5-хэша из $_POST сложнее, чем кажется. Подробности — на <noindex><a href="http://forum.mikrotik.com/viewtopic.php?p=276099#p276099" target="_blank" rel="nofollow" >http://forum.mikrotik.com/viewtopic.php?p=276099#p276099</a></noindex> <br />
			<i>12.08.2011 16:53:00, Devil.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396891</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396891</guid>
			<pubDate>Fri, 12 Aug 2011 16:53:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396890">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет. По этой причине мне очень интересно делать MD5-хэширование прямо в PHP, а не через скрипт на стороне клиента. Это должно быть возможно, иначе этот метод просто не сработал бы. Хотя я пока ничего не понимаю в JavaScript, у нас есть доступ к исходному коду (md5.js). Думаю, не так уж сложно разобраться, что там происходит. <br />
			<i>12.08.2011 05:38:00, Devil.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396890</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396890</guid>
			<pubDate>Fri, 12 Aug 2011 05:38:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>PHP md5() для страницы входа</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396889">PHP md5() для страницы входа</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Если этот вопрос уже задавали, извиняюсь. Я провёл бесчисленные часы, ищя ответ через Google и на этом сайте: я создал внешний PHP-скрипт для регистрации и входа клиентов. Я модифицировал файл login.html на хотспоте, чтобы передавать id и challenge. Я пытался объединить chap-id, пароль и chap-challenge так: $pwd = $chapid.$password.$chapchallenge в моём внешнем PHP-файле. Эхо $pwd выглядело так: \051test\333\311\130\244\370\106\344\017\263\167\057\152\317<WBR/>&shy;\114\013\323, где \051 — это chap-id, а test — пароль. Преобразование не совпадает, и chap не срабатывает. Я изменил login.html, чтобы показать chap-пароль, который был c5cc6920e01c5cbf0545b42e1c551111. php md5() показал 445a83713211579469e2f2577697d64b. Я, честно говоря, запутался. Не получается передать переменные из PHP в функции и внешний javascript-файл (md5.js), так что не могу использовать их в своём скрипте. Мне кажется, что обратные слеши нужно убрать и заменить чем-то другим перед md5()??? Очень буду благодарен за помощь! <br />
			<i>09.02.2010 23:08:00, beardenrv.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396889</link>
			<guid>http://mikrotik.moscow/forum/forum57/85485-php-md5_-dlya-stranitsy-vkhoda/message396889</guid>
			<pubDate>Tue, 09 Feb 2010 23:08:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
