
09.01.2008, 13:09
|
|
Постоянный
Регистрация: 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=0; strlen($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=0; strlen($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>");
?>
|
|
|