异或密码是密码学中一种简单的加密算法,属于维吉尼亚密码的一种变体,不过其和维吉尼亚密码本质上并不相同,异或密码主要基于异或运算进行加密。 异或运算是计算机程序设计语言中,一种很重要的基于二进制的位运算,其中异或的数学符号为“⊕”,计算机符号为“XOR”。 异或密码不管是加密和解密都遵循着一个固定的异或运算原则进行,如下所示: A⊕0=A 0⊕A=A A⊕A=0 (这个规则的意思很简单,,即不相同的数字进行异或等于1,相同的数字进行异或等于0) 根据以上的运算逻辑,我们在加密的时候,只需要将明文转换成8位数二进制ASII码,之后和密钥按位进行异或运算,即可得出密文,解密也是同样的道理,只需要将加密后的结果与密钥再次进行按位异或运算即可,记得区分大小写。 举个简单的例子: 我们要用密钥:L
首先,在加密之前,我们需要先将明文和密钥都转换成8位数的二进制ASII码,根据上表查找即可。 转换后如下: 密钥: 01001100 明文: 01010100-01010101-01001001 之后,我们将明文写在上面,密钥写在下面(密钥重复使用),然后按位进行异或运算即可,如下所示: 01010100-01010101-01001001(明文) ⊕ 01001100-01001100-01001100(密钥) = 00011000-00011001-00000101(密文) 解密的话,只需要将加密后的结果与密钥再次进行按位异或运算即可,如下所示: 00011000-00011001-00000101(密文) ⊕ 01001100-01001100-01001100(密钥) = 01010100-01010101-01001001(明文) 最后,值得说明的是异或密码安全性不高,很容易被破解,所以对于私密的信息,不建议用这种方法进行加密,但是可以利用该密码和其他密码进行组合加密,这个就看你们自己发挥了。
|