void main(void) { int src=54; int pwd=32; int dst=0; dst=src^pwd; printf(" Encryption: %d\n",dst); src=dst^pwd; printf(" Decryption: %d\n",src); } 异或一次就加密了,再异或一次又还原了.
实际应用中,常用此方法拓展结合MAC地址加密解密文件,如下:
bool file_encrypt(char* data, int fmoive_type)
{
if( fd == NULL )
{
return false;
}
else
{
char en_mac[12];
fseek(fd, 0, SEEK_SET);
fread(en_mac, sizeof(char), 12, fd);
//avi
if( fmoive_type == 0 )
{
en_mac[0] = en_mac[0]^data[0];
en_mac[0] = en_mac[0]^data[1];
en_mac[1] = en_mac[1]^data[3];
en_mac[1] = en_mac[1]^data[4];
en_mac[2] = en_mac[2]^data[6];
en_mac[2] = en_mac[2]^data[7];
en_mac[3] = en_mac[3]^data[9];
en_mac[3] = en_mac[3]^data[10];
en_mac[8] = en_mac[8]^data[12];
en_mac[8] = en_mac[8]^data[13];
en_mac[9] = en_mac[9]^data[15];
en_mac[9] = en_mac[9]^data[16];
}
//mp4
if( fmoive_type == 1 )
{
//printf("en_mac[0] is %x\n", en_mac[0]);
en_mac[0] = en_mac[0]^data[0];
//printf("en_mac[0] is %x\n", en_mac[0]);
en_mac[0] = en_mac[0]^data[1];
//printf("en_mac[0] is %x\n", en_mac[0]);
en_mac[1] = en_mac[1]^data[3];
en_mac[1] = en_mac[1]^data[4];
en_mac[2] = en_mac[2]^data[6];
en_mac[2] = en_mac[2]^data[7];
en_mac[4] = en_mac[4]^data[9];
en_mac[4] = en_mac[4]^data[10];
en_mac[5] = en_mac[5]^data[12];
en_mac[5] = en_mac[5]^data[13];
en_mac[6] = en_mac[6]^data[15];
en_mac[6] = en_mac[6]^data[16];
}
fseek(fd, 0, SEEK_SET);
fwrite(en_mac, sizeof(char), 12, fd);
}
return true;
}