本人现在需要php对一段文字加密,然后解密恢复原文。找到如下的代码,测试后事正确的。但是就是看不懂这是怎么加解密的,请大侠帮我添加注释,尽量详细,多谢多谢啊!!
<?php
//key = "This is supposed to be a secret key !!!"; 估计是密阴
$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 "原始字符串 : $string <Br> ";
print "加密后字串 : $enc_text <Br> ";
print "解密后字串 : $dec_text <Br> ";
?>