...
char text[256];
fgets(text, 255, stdin);
xorEncrypt(text, 'a');
...
void xorEncrypt(char *string, char key)
{
int i, string_length = strlen(string);
for(i=0; i<string_length; i++)
{
string[i]=string[i] ^ key;
}
printf("%s", string);
}
//user enters "test"
//result is: §♦↕§k (correct)
//user enters "abcdefg"
//result is empty
//user enters "testbca"
//result is "§♦↕§♥☻" (incorrect) and there is a beep sound
当我使用像'a','b','c'这样的字符作为键时,它会给出一个空结果或一些随机符号,但使用其他字母如“A”,“我”... ,工作正常,我可以解密。
答案 0 :(得分:2)
代码似乎很好。您可能希望打印生成的字符串,但XOR可能已将部分字符串转换为不可打印的字符。另请注意,字符串中可能现在有空字符(例如'a ^'a'= 0),因此终止空字符不再确定结尾。