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