0

日志文件充满了这个错误:

未定义的偏移量:/var/www/html/site2/functions.inc.php 第 764 行中的 255"

第 764 行如下:

$counter[$i] = $counter[$x];    

整个功能见下文。

有人可以帮我解决吗?谢谢。

function Encode($data,$pwd) {
    $pwd_length = strlen($pwd);
    for ($i = 0; $i < 255; $i++) {
        $key[$i] = ord(substr($pwd, ($i % $pwd_length)+1, 1));
        $counter[$i] = $i;
    }
    $x = '';
    for ($i = 0; $i < 255; $i++) {
        $x = ($x + $counter[$i] + $key[$i]) % 256;
        $temp_swap = $counter[$i];
        $counter[$i] = $counter[$x];
        $counter[$x] = $temp_swap;
    }
    $a = '';
    $j = '';
    $Zcrypt = '';
    for ($i = 0; $i < strlen($data); $i++) {
        $a = ($a + 1) % 256;
        $j = ($j + $counter[$a]) % 256;
        $temp = $counter[$a];
        $counter[$a] = $counter[$j];
        $counter[$j] = $temp;
        $k = $counter[(($counter[$a] + $counter[$j]) % 256)];
        $Zcipher = ord(substr($data, $i, 1)) ^ $k;
        $Zcrypt .= chr($Zcipher);
    }
    return $Zcrypt;
}
4

1 回答 1

2

当 $i >= 255 时,您的 for 循环停止。您不希望这样。我认为您希望 for 循环在 $i>255 处停止。

所以改变

对于 ($i = 0; $i < 255; $i++) {

进入

对于 ($i = 0; $i <= 255; $i++) {

你很高兴去!

于 2012-05-27T11:31:04.453 回答