这是我有关StackOverflow的第一个问题,因此,如果我做错了什么,请不要对我太苛刻。 无论如何,我在所查找的C文件中找到了某种加密方式,并且拥有解密代码,但是我不知道如何反转它,因此可以将自己的字符串加密到其中。
int r;
char str[] = {"4:;145;14;81583"};
for(r = 0; (r < 100 && str[r] != '\0'); r++)
str[r] = str[r] - 3;
加密的字符串(4:; 145; 14; 81583)是IP 178.128.185.250 就像我说的那样,我想知道如何反转解密方法,以便可以加密自己的字符串。帮助吗?
答案 0 :(得分:2)
这很简单:解密是- 3
,所以加密是+ 3
解密
#include <stdio.h>
int main(void) {
int r;
char str[] = {"4:;145;14;81583"};
for(r = 0; (r < 100 && str[r] != '\0'); r++)
str[r] = str[r] - 3;
// ^ notice: minus
printf("%s\n", str);
return 0;
}
输出:
178.128.185.250
加密
include <stdio.h>
int main(void) {
int r;
char str[] = {"178.128.185.250"};
for(r = 0; (r < 100 && str[r] != '\0'); r++)
str[r] = str[r] + 3;
// ^ notice: plus
printf("%s\n", str);
return 0;
}
输出:
4:;145;14;81583
编辑:
行
for(r = 0; (r < 100 && str[r] != '\0'); r++)
是直接从OP问题中复制的。据我所知,它可以简化为:
for(r = 0; str[r] != '\0'; r++)
没有任何问题。