Xor 加密
xor 异或运算表示两个操作数的位中, 相同则为0, 不同则为1.
xor 的运算符一般为 ^
或者 XOR
, 例如 110^011
表示对 110 和 011 两个二进制数进行异或运算.
|
|
xor 有个很神奇的特点, 对于两个二进制数 a b, 如果 a^b = c
, 那必有 c^b = a
.
|
|
基于这种特性, 就衍生出了 xor 加密.
message XOR key //cipher
cipher XOR key //message
注意在加解密前后, key 的长度必须大于等于 message 或者 cipher 的长度.
python 的 xor 加密实现
|
|
cipher: '-\x1d\x1c]_I#\n\n\x1cU'
解密同理
|
|
message: Hello World