C 如何将代码更改为加密而不是解密文件?

C 如何将代码更改为加密而不是解密文件?,c,encryption,fwrite,C,Encryption,Fwrite,我使用下面包含的代码来解密一些图形文件。我想修改它,以便它可以再次加密它们。不幸的是,我是一名平面设计师,我对编程(而不是C语言)只有非常基本的知识,所以我对这段代码的理解程度不足以让我自己修改它 #include <stdio.h> int main (int argc, char **argv) { FILE *inp, *outp; int i; char sig[] = "CF10", *ptr; if (argc != 3) {

我使用下面包含的代码来解密一些图形文件。我想修改它,以便它可以再次加密它们。不幸的是,我是一名平面设计师,我对编程(而不是C语言)只有非常基本的知识,所以我对这段代码的理解程度不足以让我自己修改它

#include <stdio.h>

int main (int argc, char **argv)
{
    FILE *inp, *outp;
    int i;
    char sig[] = "CF10", *ptr;

    if (argc != 3)
    {
        printf ("usage: decode [input] [output]\n");
        return -1;
    }
    inp = fopen (argv[1], "rb");
    if (inp == NULL)
    {
        printf ("bad input file '%s'\n", argv[1]);
        return -2;
    }
    ptr = sig;
    while (*ptr)
    {
        i = fgetc (inp);
        if (*ptr != i)
        {
            printf ("input file sig is not 'CF10'\n");
            return -2;
        }
        ptr++;
    }
    outp = fopen (argv[2], "wb");
    if (outp == NULL)
    {
        printf ("bad output file '%s'\n", argv[1]);
        return -2;
    }
    do
    {
        i = fgetc(inp);
        if (i != EOF)
            fputc (i ^ 0x8d, outp);
    } while (i != EOF);
    fclose (inp);
    fclose (outp);
    printf ("all done. bye bye\n");
    return 0;
}
#包括
int main(int argc,字符**argv)
{
文件*inp,*outp;
int i;
字符sig[]=“CF10”,*ptr;
如果(argc!=3)
{
printf(“用法:解码[输入][输出]\n”);
返回-1;
}
inp=fopen(argv[1],“rb”);
如果(inp==NULL)
{
printf(“错误的输入文件“%s”\n”,argv[1]);
返回-2;
}
ptr=sig;
while(*ptr)
{
i=fgetc(inp);
如果(*ptr!=i)
{
printf(“输入文件sig不是'CF10'\n”);
返回-2;
}
ptr++;
}
outp=fopen(argv[2],“wb”);
如果(输出==NULL)
{
printf(“错误的输出文件“%s”\n”,argv[1]);
返回-2;
}
做
{
i=fgetc(inp);
如果(i!=EOF)
fputc(i^0x8d,输出);
}而(i!=EOF);
fclose(inp);
fclose(outp);
printf(“全部完成。再见\n”);
返回0;
}

这充其量只能被描述为模糊了内容。它使用“xor”加密,其一个优点是自解密

您可以在未加密文件上运行代码并获得加密文件,或者在加密文件上运行代码并获得未加密文件


我误读了密码;很抱歉您的代码读取CF10幻数,然后在对其进行异或运算后写入其余数据;CF10告诉它它被遮挡了。为了隐藏未被破坏的数据,您应该将CF10幻数写入输出文件,然后读取输入并对其进行异或并写入。经过改进的代码版本将测试文件的前四个字节(与CF10相等),以确保您没有重新隐藏或已经隐藏文件

您可能需要处理一个选项参数,该参数决定是加密还是解密(隐藏还是不隐藏)。或者,您可以使用文件的前四个字节来告诉您是加密还是解密


请注意,原始答案的基本点——xor加密和解密基本上是相同的操作——仍然有效。

这最多可以被描述为隐藏内容。它使用“xor”加密,其一个优点是自解密

您可以在未加密文件上运行代码并获得加密文件,或者在加密文件上运行代码并获得未加密文件


我误读了密码;很抱歉您的代码读取CF10幻数,然后在对其进行异或运算后写入其余数据;CF10告诉它它被遮挡了。为了隐藏未被破坏的数据,您应该将CF10幻数写入输出文件,然后读取输入并对其进行异或并写入。经过改进的代码版本将测试文件的前四个字节(与CF10相等),以确保您没有重新隐藏或已经隐藏文件

您可能需要处理一个选项参数,该参数决定是加密还是解密(隐藏还是不隐藏)。或者,您可以使用文件的前四个字节来告诉您是加密还是解密


请注意,原始答案的基本点——xor加密和解密基本上是相同的操作——仍然有效。

这最多可以被描述为隐藏内容。它使用“xor”加密,其一个优点是自解密

您可以在未加密文件上运行代码并获得加密文件,或者在加密文件上运行代码并获得未加密文件


我误读了密码;很抱歉您的代码读取CF10幻数,然后在对其进行异或运算后写入其余数据;CF10告诉它它被遮挡了。为了隐藏未被破坏的数据,您应该将CF10幻数写入输出文件,然后读取输入并对其进行异或并写入。经过改进的代码版本将测试文件的前四个字节(与CF10相等),以确保您没有重新隐藏或已经隐藏文件

您可能需要处理一个选项参数,该参数决定是加密还是解密(隐藏还是不隐藏)。或者,您可以使用文件的前四个字节来告诉您是加密还是解密


请注意,原始答案的基本点——xor加密和解密基本上是相同的操作——仍然有效。

这最多可以被描述为隐藏内容。它使用“xor”加密,其一个优点是自解密

您可以在未加密文件上运行代码并获得加密文件,或者在加密文件上运行代码并获得未加密文件


我误读了密码;很抱歉您的代码读取CF10幻数,然后在对其进行异或运算后写入其余数据;CF10告诉它它被遮挡了。为了隐藏未被破坏的数据,您应该将CF10幻数写入输出文件,然后读取输入并对其进行异或并写入。经过改进的代码版本将测试文件的前四个字节(与CF10相等),以确保您没有重新隐藏或已经隐藏文件

您可能需要处理一个选项参数,该参数决定是加密还是解密(隐藏还是不隐藏)。或者,您可以使用文件的前四个字节来告诉您是加密还是解密


请注意,原始答案的基本点——xor加密和解密基本上是相同的操作——仍然有效。

这只是简单的xor。。。所以你不需要改变任何东西(解密和加密是完全一样的)