异或加密算法
在二进制中:
1 XOR 0=1
0 XOR 1=1
1 XOR 1=0
0 XOR 0=0
可以看出若两个数相同取0,不同取1
运算 11001 ^ 01011 = 10010
最重要的是:异或运算具有可逆性
如何具有可逆性呢?
每个位数上的数值都进行异或比较:
1 XOR 0=1 那么这里相反的 1 XOR 0 = 1 也同样相等
0 XOR 0=0 那么这里相反的 0 XOR 0 = 0 也同样相等
即:若a XOR b=c,则有b XOR c=a (a,b,c分别表示0或1)
实现的C代码:
#include <stdio.h>
main()
{
char a[]="Password"; //要加密的密码
char b[]="encryption"; //密钥
int i;
//加密代码
for(i=0;a[i];i++)
a[i]=a[i]^b[i];
printf("Your Password is encrypted: %s\n",a);
/*解密代码*/
for(i=0;a[i];i++)
a[i]=a[i]^b[i];
printf("You Password: %s\n",a);
}

浙公网安备 33010602011771号