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"; ?>
参考