Показать сообщение отдельно

  #10  
Старый 09.01.2008, 13:09
Macro
Постоянный
Регистрация: 11.11.2006
Сообщений: 595
Провел на форуме:
1845062

Репутация: 1079


По умолчанию

Алгоритм генерации хэша с GUI

PHP код:
<?php
if(!isset($_POST["pass"])){$a="example password";}else{$a=$_POST["pass"];}
$body="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"><html><HEAD><META HTTP-EQUIV=Content-Type CONTENT=\"text/html; charset=windows-1251\"><title>MacroHash Algorithm</title></head><br><br><font size='5' color='green'>MacroHash Algorithm</font><br><br><br><center><b>Type below your password:<br></b><br><form method='POST' action=''><input type='text' name='pass' value='$a'><input type='submit'></form></center>";

function 
b2h($bin)
{
$q1='3031323334353637383921402324255e262a28295f3d2d2b2c2e2f5d7b7d3c3e3f27227c6162636465666768696a6b6c6d6e6f707172737475767778797a4142434445464748494a4b4c4d4e4f505152535455565758595a20';
$q2='0123456789!@#$%^&*()_=-+,./]{}<>?\'"|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ';
$kod='switch($l) {';
for(
$i=0$i<=strlen($q2)-1$i++)
{
if(
substr($q2,$i,1)=="'")
{
$kod.='case \'\\'.substr($q2,$i,1).'\': $u=\''.substr($q1,$i*2,2).'\'; break; ';
}
else
{
$kod.='case \''.substr($q2,$i,1).'\': $u=\''.substr($q1,$i*2,2).'\'; break; ';
}
}

$kod.=' default: $u="00";}';


$u='null';
$decoded='';
for (
$i=0;$i<=strlen($bin)-1;$i++)
{
$l=substr($bin,$i,1);
eval(
$kod);
$decoded.=$u;
}

return 
$decoded;}


function 
summa($in)
{
$sm=0;
for(
$i=0$i<=strlen($in-2); $i+=2)
{
$sm=$sm+hexdec(substr($in,$i,2));
}

$asdf2=explode(".",$sm/3.1415927);

return 
$asdf2[1];
}

function 
hash($string)

{
$b=b2h($string);
$str '';
$c='';


for(
$i=0$i<=strlen($b)-2$i+=2)
{
$x=hexdec(substr($b,$i,2));
$c.=dechex($x+intval(strlen($string)*$x)+summa($b)/$x);
}


if (
strlen($c)<=32
{
$d='';

for(
$i=0strlen($d)<=32$i+=2)
{
$d.=dechex(intval((hexdec(substr($c,$i,2))+strlen($d))*summa($b)*$x));
}
$str=substr($d,strlen($d)-32,32);
}

elseif(
strlen($c)>32)
{
$w='';
$c=substr($c,strlen($c)-5);
for(
$i=0strlen($w)<=32$i+=2)
{
$w.=dechex(intval((hexdec(substr($c,$i,2))+strlen($w))*summa($b)*$x));
}
$str=substr($w,0,32);
}
return 
$str;
}

if (empty(
$_POST["pass"])) 
{

print(
"<title>MacroHash Algorithm</title>".$body);

elseif(isset(
$_POST["pass"])) 
{
$a=$_POST["pass"];
$a1="";

print(
$body."<p><b>Password</b>: ".$a."<br><b>Hash:</b> ".hash($a)."</p>");
}
print(
"</html>");
?>
 
Ответить с цитированием