一日一技:使用异或操作对数字进行加密解密
异或操作具有以下性质:
相同的两个数,相异或以后结果为0
0与任何数相异或,结果仍然是原来的数字
异或操作满足交换率
根据这三个性质,可以使用异或操作对数字进行简单的加密和解密。
假设密钥为88882222,QQ密码为4455661122,那么可以使用密钥对QQ密码进行加密:
key =88882222
password =4455661122
cipher = key ^ password
cipher = 4510958188
现在你就把4510958188这个数字发给别人。别人拿到这个数字以后,把这个数字和密钥再做一次异或操作,就能还原QQ密码:
key =88882222
cipher =4510958188
cipher ^ key
4455661122