солью
$salt = "123!#&%asgfHTA" ;
$pass = "proba" ;
function my_crypt ( $pass , $salt )
{
$spec =array( '~' , '!' , '@' , '#' , '$' , '%' ,'^' , '&' , '*' , '?' );
$crypted = md5 ( md5 ( $salt ). md5 ( $pass ));
$c_text = md5 ( $pass );
for ( $i =0 ; $i <strlen ( $crypted );$i ++)
{
if ( ord ( $c_text [ $i ])>= 48 and ord ( $c_text [ $i ])<= 57){
& #64;$temp.=$spec[$c_text[$i]];
} elseif( ord ( $c_text [ $i ])>= 97 and ord ($c_text [ $i ])<=100 ){
& #64;$temp.=strtoupper($crypted[$i]);
} else {
& #64;$temp.=$crypted[$i];
}
}
return md5 ( $temp );
}