gpt4 book ai didi

c - 如何提高XOR的输出?

转载 作者:行者123 更新时间:2023-11-30 20:25:01 25 4
gpt4 key购买 nike

我只是想进行一个简单的加密,显然根本不安全。一切都很好,但我收到了无法打印的字符,例如换行或 nul。解码时就会出现问题。如何在这段代码中解决这个问题?

#include <stdio.h>
#include <string.h>

int main()
{
int i;
char text[1024];

printf("ENTER SOME TEXT \n");
fgets(text, 1024, stdin);

for(i=0;i<strlen(text)-1;++i)
{
if(text[i]!=32)
text[i] ^= i;
}

printf("encoded text : %s",text);

getch();
return(0);
}

最佳答案

当然,您会得到无法打印的字符,这是对值进行异或的直接结果。与您的想法相反,这不会在解码时成为问题。解码时会成为问题的是您的 if(text[i]!=32) 检查,它 a) 无用,并且b) 损坏你的输出流。摆脱这个,你应该得到一个流,它当然包含不可打印的字符,正如它应该的那样,并且应该可以很好地解码。如果您仍然遇到问题,请确保发布尝试解码流的代码。

此外,考虑到 Jakiša Tomić 下面的评论(尽管与措辞不完全一样),您需要循环直到 strlen(text) 而不是 strlen(text)-1 code>,这样空字符终止符也会被编码到输出流中,以便解码时知道何时停止。

关于c - 如何提高XOR的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31185407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com