Написал довольно-таки примитивный протектор php-файлов. Строго не судите)) Смысл состоит в том, что файл будет реально выполнить php-интерпретатору только при указании верного ключа к нему. Любую адекватную критику воспринимаю положительно! http://multihack.info/crypt
Вот твоя функция расшифровки: PHP: <?php function bytexor($a, $b, $l) { $c = ""; for ($i = 0; $i < $l; $i++) { $c .= $a{$i} ^ $b{$i}; } return ($c); } function binmd5($val) { return (pack("H*", md5($val))); } function decrypt_md5($msg, $heslo) { $key = $heslo; $sifra = ""; $key1 = binmd5($key); while ($msg) { $m = substr($msg, 0, 16); $msg = substr($msg, 16); $sifra .= $m = bytexor($m, $key1, 16); $key1 = binmd5($key . $key1 . $m); } echo "\n"; return ($sifra); } ?> http://eaccelerator.net/ticket/47 :\ это твой алгоритм?! Можно сказать Полный скрипт : PHP: <?php $charset = "utf-8"; $mime = "text/html"; $declaration = ""; #first error here $key = "fhfghfffsxeedlo!!..sd"; $mysql_host = "localhost"; $mysql_user = "demo"; $mysql_password = "deluxe"; $my_database = "myuser"; $link = mysql_connect("$mysql_host", "$mysql_user", "$mysql_password") or $etext="Could not connect"; mysql_select_db("$my_database") or $etext="Could not select database"; $uncryptpass = $_SERVER['PHP_AUTH_PW']; $cryptedpass = "{md5}" . trim(str_replace("\n","",`/bin/echo -n $uncryptpass | openssl dgst -binary -md5 | openssl enc -base64`)); #second error here $query = "SELECT password FROM users WHERE userid = '". $_SERVER['PHP_AUTH_USER'] ."' AND passwd = '". $cryptedpass ."' LIMIT 1;"; $query_result_handle = mysql_query ($query) or print "Could not make query"; $row = mysql_fetch_row ($query_result_handle); mysql_close($link); $sqltempcpwd = $row[0]; $decrypted = decrypt_md5($sqltempcpwd, $key); $sqlpass = substr($decrypted, 0, 5); function bytexor($a,$b,$l) { $c=""; for($i=0;$i<$l;$i++) { $c.=$a{$i}^$b{$i}; } return($c); } function binmd5($val) { return(pack("H*",md5($val))); } function decrypt_md5($msg,$heslo) { $key=$heslo;$sifra=""; #third error here $key1=binmd5($key); while($msg) { $m=substr($msg,0,16); $msg=substr($msg,16); $sifra.=$m=bytexor($m,$key1,16); $key1=binmd5($key.$key1.$m); } # echo "\n"; return($sifra); } function crypt_md5($msg,$heslo) { $key=$heslo;$sifra=""; #fourth error here $key1=binmd5($key); while($msg) { $m=substr($msg,0,16); $msg=substr($msg,16); $sifra.=bytexor($m,$key1,16); $key1=binmd5($key.$key1.$m); } #echo "\n"; return($sifra); } ?> Скатывать нехорошо... эх хоть бы на дату поста посмотрел 04/15/06 Никакой оригинальности.. И переделай лучше на SHA-1
Ну этот алгоритм не мой. Я думаю все, кто ща работает профессионально с пхп знают этот алгоритм. И не надо на меня тыкать пальцами. А все остальное чисто мое. Все сделано на файлах. И никакого мускуля. Позже, когда доведу до ума и допишу обфускацию нормальную - выложу в паблик.
Поменял функцию binmd5 Было PHP: function binmd5($val) { return(pack("H*",md5($val))); } Стало PHP: function binmd5($val) { return(pack("hH*",sha1(md5($val)),md5(sha1($val)))); }