异或运算

来源:互联网 发布:广东粤数大数据 猎聘网 编辑:程序博客网 时间:2024/04/30 09:48

异或的运算方法是一个二进制运算:
1^1=0
0^0=0
1^0=1
0^1=1

两者相等为0,不等为1.

对于一个字符来说,都可以用二进制码来表示.如A:01000001
字符的异或就是对每一位进行二进制运算.

用于加密算法时,假设你要加密的内容为A,密钥为B,则可以用异或加密:
C=A^B
在数据中保存C就行了.
用的时候:
A=B^C
即可取得原加密的内容,所以只要知道密钥,就可以完成加密和解密.

 

#include <stdio.h>main(){   char a[]="MyPassword";        /*要加密的密码*/   char b[]="cryptographic";     /*密钥*/   int i;   /*加密代码*/   for(i=0;a[i]!='\0';i++)       a[i]=a[i]^b[i];   printf("You Password encrypted: %s\n",a);   /*解密代码*/   for(i=0;a[i]!='\0';i++)       a[i]=a[i]^b[i];   printf("You Password: %s\n",a);  }


 

0 0
原创粉丝点击