PHP中的XOR二进制文件

时间:2013-01-16 18:17:39

标签: php xor

我想对二进制文件进行异或,但结果仍然是错误的xor xor示例脚本:

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

这就是结果:

10011110

应该在

之间产生xor
01100001
01100010
--------
00000011

请给我正确的答案

1 个答案:

答案 0 :(得分:3)

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

echo  _xor('01100001','01100010');

在使用^之前,首先应将字符串转换为int

不需要使用两个错误的循环,只有一个是好的。