Наткнулся на один сайт.Непонимаю каким алгоритмом шифруется пароль пароль zoook123 зашифровался как aen208zVrMp6cFrWndTX1HJn 12345 как aen2wcbQ3MfGq9nUy50=
Это 100 пудов не линукс хеш. Очень похоже на MD5(Base64), хотя тоже не он. Это хитрый какой-то алгоритм функции base64 от какой-то хеш функции.
Приведи еще хотя бы 2 примера, может подберу! Чисто догадка - если хеш aen2wcbQ3MfGq9nUy50= декодировать Base64 - то получится что-то похожее на Sha1 base64. Думаю легче влезть на серв и глянуть код.
Выкладываю код который шифрует пароль.У самого времени совсем нет.Тому кто разберет большое спасибо +++++ Файл cr.php PHP: <?php $key = "mjkcHJID$%($+_XN90-gf0bnsdfhgapd'Q;2dfh hsdf9F,-GH9R"; //$txt2= encript_text4("текст для проверки ШИФРОВАНИЯ - дешифрования с использованием случайно сгенерированных цифровых ключей!","12345"); //echo $txt2."<br><br>"; //echo decript_text4($txt2,"12345"); function encript_text($text,$key,$base64_out=0) { $size=strlen($text); $lenKey=strlen($key); $c=0; for($i=0;$i<$lenKey;$i++) $c=chr( ord($c)+ord($key[$i]) ); $i=0; $out=""; for($n=0;$n<$size;$n++) { $out.=chr(ord($text[$n])+ ord($c)+ord($key[$i]) ); $i++; if($i==$lenKey) $i=0; } if($base64_out) return "aen".$out; else return "aen".base64_encode($out); } ////////////////////////////////////////// // с использованием случайно сгенерированных цифровых ключей function encript_text3($text,$base64_out=0) { $crc32_str= crc32($text);// 9 или 10 символов $text.="#".$crc32_str; //exit("$text | ".strlen($text)); $size=strlen($text); mt_srand(make_seed()); $lenKey=30; $number=mt_rand(100,150); $key=substr(bcpow(2,$number),0,$lenKey); //exit("$key"); $i=0; $out=""; for($n=0;$n<$size;$n++) { $out.=chr(ord($text[$n])+ ord($key[$i]) ); $i++; if($i==$lenKey) { $out.=chr($number);// добавляется 1 символ в конец $i=0; $number=mt_rand(100,150); $key=substr(bcpow(2,$number),0,$lenKey); //exit("$out"); } } if($i) $out.=chr($number);// добавляется 1 символ в конец //exit("$out"); //$text = decript_text3($out,$base64_out);exit("$base64_out | $text | ".strlen($text)); if($base64_out) return $out; else return base64_encode($out); } ////////////////////////////////////////// function encript_text2($text,$password,$key) { $password1=encript_text($text,$key); $password2=encript_text($password1,$password); $password2=str_replace("aen","aen2",$password2); return $password2; } ////////////////////////////////////////// function encript_text4($text,$password,$base64_out=0) { $text=encript_text3($text,$base64_out); //exit("$text"); //$text=decript_text3($text);exit("$text"); $text=encript_text($text,$password,$base64_out); $text=str_replace("aen","axn",$text); //$text = decript_text($text, $password); //exit("$text"); return $text; } ////////////////////////////////////////////////////////// function decript_text($text,$key,$base64_out=0) { $text=substr($text,3); if(!$base64_out) $text=base64_decode($text); $size=strlen($text); $lenKey=strlen($key); $c=0; for($i=0;$i<$lenKey;$i++) $c=chr( ord($c)+ord($key[$i]) ); $i=0; $out=""; for($n=0;$n<$size;$n++) { $out.=chr(ord($text[$n])- (ord($c)+ord($key[$i])) ); $i++; if($i==$lenKey) $i=0; } //exit("$base64_out | $out | ".strlen($out)); return $out; } ///////////////////////////////////// function decript_text3($text,$base64_out=0) { if(!$base64_out) $text=base64_decode($text); $size=strlen($text); //exit("$base64_out $text"); if(!$size)// потому что с другим паролем base64_decode может выдавать пустую стоку return "Неправильный пароль..."; $lenKey=30; $n=$size; $out=""; while($n>$lenKey) { $number=ord(substr($text,$lenKey,1)); $key=substr(bcpow(2,$number),0,$lenKey); $text0=substr($text,0,$lenKey); for($i=0;$i<$lenKey;$i++) { $out.=chr(ord($text[$i])- ord($key[$i]) ); } $text=substr($text,$lenKey+1); $n-=$lenKey+1; }/// if($n) { $number=ord(substr($text,$n-1)); $key=substr(bcpow(2,$number),0,$lenKey); for($i=0;$i<$n-1;$i++) { $out.=chr(ord($text[$i])- ord($key[$i]) ); } } // exit("$base64_out | $out | ".strlen($out)); //$pos=strrpos($out,"#");// если не текстовые символы, то функция шизеет... //exit("$out"); $len=strlen($out); $hash=""; //exit("$len | ".$out[$len-1]); $pos=0; for($i=$len-1;$i>$len-14;$i--) { if($out[$i]=='#') {$pos=$i;break;} $hash=$out[$i].$hash; } //exit("$hash | $len | "); if($pos===false) return "Неправильный пароль..."; $text=substr($out,0,$pos); $hash=substr($out,$pos+1); $crc32_str= crc32($text); if($hash!=$crc32_str) return "Неправильный пароль..."; return $text; } ///////////////////////////////////// function decript_text2($text,$password,$key) { $pswd=str_replace("aen2","aen",$text); //exit("$pswd"); $pswd = decript_text($pswd, $password); //exit("!0 $pswd "); $out = decript_text($pswd, $key); return $out; } ///////////////////////////////////// function decript_text4($text,$password,$base64_out=0) { // exit("$base64_out $text"); $text = decript_text($text, $password,$base64_out); //exit("$base64_out | $text | ".strlen($text)); $text = decript_text3($text,$base64_out); return $text; } function check_pswrd($word_decrypted,$pswrd,$key) { $prefix=substr($pswrd,0,3); //exit("! $pswrd | $prefix ".$pswrd[3]); if($prefix=="aen") { if($pswrd[3]=="2") { $pswd = decript_text2($pswrd, $word_decrypted, $key); //exit("!1 $pswd"); if($pswd == $word_decrypted) return 1; } $pswd = decript_text($pswrd, $key); //exit("!2 $pswd"); if($pswd == $word_decrypted) return 1; } $pswd = crypt($word_decrypted, substr($word_decrypted, 0, 2)); //exit("!2 $pswd $pswrd"); if($pswd == $pswrd) return 1; return 0; } //$out=encript_text("привет","123"); //exit($out); //exit(decript_text($out,"123")); //////////////////////////////////////////////////////////// if(!function_exists("make_seed")) { function make_seed() { list($usec, $sec) = explode(' ', microtime()); return (float) $sec + ((float) $usec * 100000); } } ?> Пример зашифровки и расшифровки. PHP: <?php include("cr.php"); $key = "mjkcHJID$%($+_XN90-gf0bnsdfhgapd'Q;2dfh hsdf9F,-GH9R"; $password0="pfghjc0"; $password = encript_text2($password0,$password0,$key); echo $password."----"; echo decript_text2($password,$password0,$key); ?>
Ну так тут всё ясно) Самописный алгоритм шифрования - увеличение кода символа на определнное число + код символа ключа!
Вопроса не понял - приведены функции шифровки и деешифровки, всё на основании ключа, который либо известен, как во втором скрипте, и пароль подлежит расшифровке элементарно, либо неизвестен, и пароль расшифровке не подлежит Какая разница, какой алгоритм, если дана функция для восстановления и есть ключ? Нет ключа - не расшифруешь. Вот и всё. ЗЫЖ Правда при расшифровке в качестве текста использован сам пароль)) Сорри, не сразу заметил
впервые встречаюсь с такой штукой: MR80U2oNd1zB//HHOWQV7uAD394/jy6ENrVADV3gRGw= что это за тип хеша?! (бейс64 не предлагать))) AFoST отбой, разобрался
[0]:admin:$1$pK3.8F3.$PFsD8YuLpXBMvwY7xKIY61:1 [1]:admin2:$1$vy/.Mn0.$kC0QhPDCyfCytpZPGjO62.:2 Подскажите и мне:
не смог найти похожий в вышеуказанной ссылке вот такие парольчеГи Code: 4BEs5DUX5WYqyP3Ry 7%YS5Was2L9TujusE p4He#UGaJ3T9MehUV TYJ8G5WYzUp7%9gYX