<?php
$key = "This is supposed to be a secret key !!!";function keyED($txt,$encrypt_key)
{
$encrypt_key = md5($encrypt_key);
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
$ctr++;
}
return $tmp;
}function encrypt($txt,$key)
{
srand((double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000));
$ctr=0;
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($encrypt_key,$ctr,1) .
(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1));
$ctr++;
}
return keyED($tmp,$key);
}function decrypt($txt,$key)
{
$txt = keyED($txt,$key);
$tmp = "";
for ($i=0;$i<strlen($txt);$i++)
{
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
return $tmp;
}$string = "真的是这样的吗?";// encrypt $string, and store it in $enc_text
$enc_text = encrypt($string,$key);// decrypt the encrypted text $enc_text, and store it in $dec_text
$dec_text = decrypt($enc_text,$key);print "Original text : $string <Br>\n";
print "Encrypted text : $enc_text <Br>\n";
print "Decrypted text : $dec_text <Br>\n";
?>

解决方案 »

  1.   

    http://au3.php.net/manual/zh/ref.mcrypt.php
      

  2.   

    1楼加密出来的是非ASCII字符,还是感谢了 ;-)urlencode也算一种吧!请楼下继续!
      

  3.   

    discuz的passport里有这样的函数
      

  4.   

    加密解密……针对ACSII的加密和解密比较好解决,但是把其他的编码也加密,而且生成的是ACSII就有点困难了
      

  5.   

    这个可以自己写,多中函数混合用,中间加上自己的私有key
      

  6.   

    http://www.blogjava.net/mxx/archive/2006/10/19/DES_in_Javascript.html