$txt="密钥"; //密钥
$key="PHPWEBHOME.COM";
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.I_Z)L&*()!@#~¥%……&*()%~)^=dx,~!@#$%^^#";
$ikey = "-x6g6Z——=+G9g_vr0m&^%%$$@!()Bo.pOq*&¥#%Z6r";
$knum = 0;$i = 0;
$tlen = strlen($txt);
while(isset($key{$i})) $knum +=ord($key{$i++});
$ch1 = $txt{$knum % $tlen};
$nh1 = strpos($chars,$ch1);
$txt = substr_replace($txt,'',$knum % $tlen--,1);
$ch2 = $txt{$nh1 % $tlen};
$nh2 = strpos($chars,$ch2);
$txt = substr_replace($txt,'',$nh1 % $tlen--,1);
$ch3 = $txt{$nh2 % $tlen};
$nh3 = strpos($chars,$ch3);
$txt = substr_replace($txt,'',$nh2 % $tlen--,1);
$nhnum = $nh1 + $nh2 + $nh3;
$mdKey = substr(md5(md5(md5($key.$ch1).$ch2.$ikey).$ch3),$nhnum % 8,$knum % 8 + 16);
$tmp = '';
$j=0; $k = 0;
$tlen = strlen($txt);
$klen = strlen($mdKey);
for ($i=0; $i
$k = $k == $klen ? 0 : $k;
$j = strpos($chars,$txt{$i})-$nhnum - ord($mdKey{$k++});
while ($j<0) $j+=64;
$tmp .= $chars{$j};
}
$tmp = str_replace(array('-','_','.'),array('+','/','='),$tmp);
echo trim(base64_decode($tmp));
?>