0

如何循环密钥只要 $text 这是我的代码:

function _xor($text,$key){
    for($i=0; $i<strlen($text); $i++){
        $text[$i] = intval($text[$i])^intval($key[$i]);
    }
    return $text;
}

上述代码的结果不会像$keylength那样重复$text。我想和re-XORed一样多重复怎么办$key$text

4

1 回答 1

1

您必须使用模运算符才能仅使用 $key 字符串的 [0 .. strlen($key)-1] 索引。如果你把$i % strlen($key)你的值从零到 strlen($key) - 1 in loop

function _xor($text,$key){
    for($i=0; $i<strlen($text); $i++){
        $text[$i] = intval($text[$i])^intval($key[$i % strlen($key)]);
    }
    return $text;
}

PS:关于模运算符的信息:http ://en.wikipedia.org/wiki/Modulo_operation

于 2013-01-21T08:41:12.343 回答