XOR暗号化すると 7bit の範囲に収まらなくなるので、16進表現に変換してやると扱いやすい。暗号化といっても、本当に暗号が必要なところでは使ってはだめだめ。「XOR難読化」というべきな感じ。
<?php
// XOR encrypt/descript
// $key should be just 1 charactor
function xor_encrypt($plain,$key) {
$seed=str_repeat($key,strlen($plain));
return bin2hex($plain^$seed);
}
function xor_decrypt($enc,$key) {
$seed=str_repeat($key,strlen($enc));
return pack("H*",$enc)^$seed;
}
// test code
$key='v';
$enc=xor_encrypt($argv[1],$key);
echo $enc."\n";
echo xor_decrypt($enc,$key)."\n";
?>
参考
groundwalker.com