Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Задачка на сообразительность

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Для начинающих] >> Задачка на сообразительность
Имя
Сообщение << Старые топики   Новые топики >>
Задачка на сообразительность - 2010-03-01 01:15:28.903333   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
Один хитромудрый админ, прежде сунуть пароли юзеров в базу, шифрует
их вот такой вот функцией:

&lt;?php function pass_in($string) { $result = ''; $error = 'Invalid character'; for($i=1; $i&lt;=strlen($string); $i++) { $char = substr($string, $i-1, 1); $keychar = substr($error, ($i % strlen($error))-1, 1); $char = chr(ord($char) + ord($keychar)); $result .= $char; } return $result; } ?&gt; Если с помощью этой функции зашифровать слово 'parol'

echo pass_in('parol');

то получим

№ПиРШ

Задача - написать обратную функцию, дешифровщик

За это вам будет респект и плюсы в репу
Post #: 1
RE: Задачка на сообразительность - 2010-03-01 01:47:36.803333   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Я б сказал, как дешифровать, но если ты пояснишь, что будет результатом вызова: substr($error, -1, 1). Я только этого не понимаю. Но если предполагать что длина пароля будет меньше чем длинна $error, то всё ведь тривиально. Явно используется обратимое преобразование.
Post #: 2
RE: Задачка на сообразительность - 2010-03-01 02:01:53.600000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
http://php.net/manual/en/function.substr.php

$error = 'Invalid character';
Post #: 3
RE: Задачка на сообразительность - 2010-03-01 07:26:58.043333   
Ltonid

Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
&lt;? function unpass($string2) { $result = ''; $error = 'Invalid character'; for($i=1; $i&lt;=strlen($string2); $i++) { $char = substr($string2, $i-1, 1); //перебираются знаки вашего пароля //echo $char; $keychar = substr($error, ($i % strlen($error))-1, 1); //перебираются знаки строки $error //echo $keychar; $char = chr(ord($char) - ord($keychar)); //складываются ASII коды двух этих строк //echo $char; $result .= $char; } return $result; } echo unpass("№ПиРШ"); ?&gt;
Всего тот "+" на "-" поменял

UPD: так баловство))
&lt;html&gt; &lt;bоdу&gt; &lt;form action=mozg.php method=post&gt; &lt;input type=test name="pass"&gt; &lt;input type=submit&gt; &lt;/form&gt; &lt;?php $pass=''; function pass_in($string) { $result = ''; $error = 'Invalid character'; for($i=1; $i&lt;=strlen($string); $i++) { $char = substr($string, $i-1, 1); //перебираются знаки parol //echo $char; $keychar = substr($error, ($i % strlen($error))-1, 1); //перебираются знаки $error //echo $keychar; $char = chr(ord($char) + ord($keychar)); //складываются ASII символы двух этих строк //echo $char; $result .= $char; } return $result; } if (isset($_POST["pass"])){ echo pass_in($_POST["pass"]);} //echo pass_in("Invalid character1"); ?&gt; &lt;br&gt; &lt;form action=mozg.php method=post&gt; &lt;input type=test name="unpass"&gt; &lt;input type=submit&gt; &lt;/form&gt; &lt;? $unpass=''; function unpass($string2) { $result = ''; $error = 'Invalid character'; for($i=1; $i&lt;=strlen($string2); $i++) { $char = substr($string2, $i-1, 1); //перебираются знаки parol //echo $char; $keychar = substr($error, ($i % strlen($error))-1, 1); //перебираются знаки $error //echo $keychar; $char = chr(ord($char) - ord($keychar)); //складываются ASII символы двух этих строк //echo $char; $result .= $char; } return $result; } if (isset($_POST["unpass"])){ echo unpass($_POST["unpass"]);} ?&gt; &lt;/bоdу&gt; &lt;/html&gt;
Post #: 4
RE: Задачка на сообразительность - 2010-03-01 12:55:37.816666   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
красава) Зачот
Post #: 5
Страниц:  [1]
Все форумы >> [Для начинающих] >> Задачка на сообразительность







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.