Задачка на сообразительность
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Задачка на сообразительность - 2010-03-01 01:15:28.903333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Один хитромудрый админ, прежде сунуть пароли юзеров в базу, шифрует их вот такой вот функцией:
<?php
function pass_in($string) {
$result = '';
$error = 'Invalid character';
for($i=1; $i<=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;
}
?>
Если с помощью этой функции зашифровать слово 'parol' echo pass_in('parol'); то получим №ПиРШ Задача - написать обратную функцию, дешифровщик За это вам будет респект и плюсы в репу
|
|
|
RE: Задачка на сообразительность - 2010-03-01 01:47:36.803333
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Я б сказал, как дешифровать, но если ты пояснишь, что будет результатом вызова: substr($error, -1, 1). Я только этого не понимаю. Но если предполагать что длина пароля будет меньше чем длинна $error, то всё ведь тривиально. Явно используется обратимое преобразование.
|
|
|
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';
|
|
|
RE: Задачка на сообразительность - 2010-03-01 07:26:58.043333
|
|
|
Ltonid
Сообщений: 4970
Оценки: 740
Присоединился: 2008-12-29 13:21:56.166666
|
<? function unpass($string2) {
$result = '';
$error = 'Invalid character';
for($i=1; $i<=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("№ПиРШ");
?> Всего тот "+" на "-" поменял UPD: так баловство)) <html>
<bоdу>
<form action=mozg.php method=post>
<input type=test name="pass">
<input type=submit>
</form>
<?php
$pass='';
function pass_in($string) {
$result = '';
$error = 'Invalid character';
for($i=1; $i<=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");
?>
<br>
<form action=mozg.php method=post>
<input type=test name="unpass">
<input type=submit>
</form>
<?
$unpass='';
function unpass($string2) {
$result = '';
$error = 'Invalid character';
for($i=1; $i<=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"]);}
?>
</bоdу>
</html>
|
|
|
RE: Задачка на сообразительность - 2010-03-01 12:55:37.816666
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
красава) Зачот
|
|
|
|
|