我正在进行一项任务,我必须编写一个代码来解密给我的文本文件。我只是坚持如何对加密代码进行反向工程,如下所示:
char decode(char aChar)
{
int result = 1 + (rand() % 127);
result = aChar - result;
if (result < 0)
{
result = result - 128;
}
return result;
}
我的代码有效,但是当我运行该程序时,它会加密已加密的文本文件。任何帮助将不胜感激。
答案 0 :(得分:2)
您需要知道如何生成随机数。
假设它是使用srand()
使用这样的常量种子生成的:
unsigned int seed = 1;
srand(seed);
然后解密代码可能是这样的:
char decrypt(char aChar)
{
srand(seed);
int result = 1 + (rand() % 127);
if (aChar + 128 < 0)
aChar = aChar + 128;
aChar = aChar + result;
return aChar;
}
请注意,这不一定100%有效,因为if
函数中的decode
语句使得解密所有字符变得困难,因为它可能会生成需要更多工作的可能结果。