您的位置:首页 > 其它

异或运算

2014-06-12 16:36 239 查看
异或的运算方法是一个二进制运算:

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);

}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: