如何循环键$ text这是我的代码:
function _xor($text,$key){
for($i=0; $i<strlen($text); $i++){
$text[$i] = intval($text[$i])^intval($key[$i]);
}
return $text;
}
上述代码的结果不会像$key
长度$text
那样重复。
我希望$key
中$text
与{{1}}一样多,然后重新异化
怎么重复?
答案 0 :(得分:1)
你必须使用modulo运算符才能使用$ key字符串的[0 .. strlen($ key)-1]索引。
如果您放置$i % strlen($key)
,您将获得从零到strlen($ key)的值 - 循环中的1
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