利用异或的性质
#include<stdio.h>
char reverse(char c)//比特逆序
{
int i;char a = 0;
for(i = 0;i<8;i++){
if(c&0X80)a|=1<<i;
c<<=1;
}
return a;
}
int main(){
char s[256],i,j,key;
printf("请输入一个字符串:\n");
scanf("%s",s);
printf("请输入一个字符作为秘钥:");
scanf("%*c%c",&key);
for(i = 0;s[i];i++)s[i] = reverse(s[i])^key;
printf("加密后的结果:\n");
for(j = 0;j<i;j++)printf("%02X",s[j]&0xFF);
printf("\n请输入秘钥用于解密");
scanf("%*c%c",&key);
for(j = 0;j<i;j++)s[j] = reverse(s[j]^key);
printf("解密的结果为:");
puts(s);
}