int a,i; int key_strlen,data_len; char KEY[] = "1234567f`!f#$%^&*&*()_+f89"; char str[] = "abcdefghij~!@#$%^&*klmnopqrstuvwxyz"; char str2[100] ; //存储加密后 char str3[100] ; //存储解密后 memset(str2,0,100); memset(str3,0,100); key_strlen = strlen(KEY); data_len = strlen(str); printf("key_strlen = %d \rdata_len = %d\n",key_strlen,data_len); //加密过程 a=0; for(i=0;i<data_len;i++) { if(a>key_strlen)a=0; str2[i] = (str[i] ^ KEY[a++]); } //解密过程 a=0; for(i=0;i<data_len;i++) { if(a>key_strlen)a=0; str3[i] = (str2[i] ^ KEY[a++]); } printf("data \t%s\n" , str); printf("Decryption\t%s\n" , str3); printf("encryption\t%s\n" , str2); printf("encryption\t"); for(a= 0;a<data_len;a++) printf("%02X",str[a]); printf("\n"); printf("Decryption\t"); for(a= 0;a<data_len;a++) printf("%02X",str3[a]); printf("\n"); printf("data \t"); for(a= 0;a<data_len;a++) printf("%02X",str2[a]); printf("\n");