{
$i_key = ord(substr($key, $i, 1));
$i_text = ord(substr($text, $i, 1));
$n_key = ord(substr($key, $i+1, 1));
$i_crypt = $i_text + $i_key;
$i_crypt = $i_crypt - $n_key;
$crypt .= chr($i_crypt);
}
return $crypt;
}
还有个key,key在哪呢?在db下的一个mishi.php里,打开内容如下:
$key="jpjtvdomfmawwttsdhoxurmygjjtauefjuimueurisecggpymneslwowuqnzmmgmvjvccmeye
uselymzoinxvqonmhjqjhljywixrdxboqdmmfidlhzrcoatnldlmwvinljayirwqcgazyvfrwvgbgroqfxiqruu
rtkpogbkgdibeqejehfamujlqasitbizcxasobkl"; ?>
分析加密函数的算法:从密码第一位开始,取密码的一个字符,取key对应位的一个字符,转换成Ascii码相加,然后相加结果再减去key中下一位的Ascii,然后把最后结果再转换成字符即所谓密文存储。
Substr(string,i,j)函数的作用是将字符串string的第 i 位起取出 j 个字符。Ord()和chr()则分别是字符到Ascii和Ascii到字符的转换函数。简化一下上面算法就是:$i_crypt=$i_text+$i_key-$i+1_key。先拿第一位算吧,假设原密码第一位Ascii码为x,则:
x+ascii(j)-ascii(p)=ascii(4)
用Ascii码算就是x+106-112=52
上一页 [1] [2] [3] 下一页