一个数异或另一个数两次后,该数保持不变。即: c = a^b; c = c^b; c == a;
将需要加密的内容看做A,密钥看做B,A ^ B=加密后的内容C。 而解密时只需要将C ^ 密钥B=原内容A。如果没有密钥,就不能解密! 这一规律就是使用异或运算对数据及文件进行加密处理的基本原理。
那就先贴下加密算法的代码:
C
代码语言:txt复制#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define KEY 0x86
int main()
{
char p_data[16] = {"OmegaXYZ.com"};
char Encrypt[16]={0},Decode[16]={0};
int i;
for(i = 0; i < strlen(p_data); i )
{
Encrypt[i] = p_data[i] ^ KEY;
}
for(i = 0; i < strlen(Encrypt); i )
{
Decode[i] = Encrypt[i] ^ KEY;
}
printf("Initial date: %sn",p_data);
printf("Encrypt date: %sn",Encrypt);
printf("Decode date: %sn",Decode);
return 0;
}
效果: