c - 如何创建一个函数来解密加密文件?

标签 c file pdf encryption

我正在尝试了解一些弱加密的基础知识,但我陷入困境......我需要一个函数来调用来解密加密的文件。但我的主要问题是我该如何解密这个文件?请友善一点,我是新手! =]
另外,w.pdf 文件在项目文件夹中以常规 pdf 形式启动,并且我在程序中确实进行了错误检查,只是为了节省空间而将其排除在此处。

#include <stdio.h>

int main()
{
    FILE *ptr1,*file,*ptr3;
    unsigned long key;
    int B,C;

    ptr1=fopen("w.pdf","rb");
    file=fopen("encryptFile.pdf","wb");

    printf("Enter the encrypt key: ");
    scanf("%ld",&key);

    //Transfer contents
    while((B=fgetc(ptr1))!=EOF)
        fputc(C=B^(key & 0xff), file);
    key=key^C;
    puts("\nencryptFile.pdf has finished.");

    rewind(file);

    ptr3=fopen("new.pdf","wb");

    //pdf file closing.
    fclose(ptr1);
    fclose(file);
    fclose(ptr3);

    return 0;
}

最佳答案

不用担心,每个人都从某个地方开始。 (但您可能应该从 Google、维基百科或 a lesson 开始,而不是从 StackOverflow 开始询问)

您的加密方案是使用用户输入的 key 来异或内容。

要解密内容,您必须反转加密,在本例中只是再次使用 key 对内容进行异或。

其他一些有用的建议:

  • 缩进代码,这对提高可读性大有帮助

  • 更好地命名您的变量。 ptr1 可以是 encryptionTargetclearTextf_pdfFile

关于c - 如何创建一个函数来解密加密文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23525296/

相关文章:

java - iText PDF 创建错误

c++ - 如何初始化指向输出缓冲区长度的指针?

c++ - 根据位置c++从PDF文档中提取文本

c - realloc 和 calloc 的动态内存分配问题

c - C语言读取函数结构体和txt文件

python - 在 Python 中获取文件关联

c - 将二进制文件加载到数组中

php - dompdf图像溢出问题

写入文件时的C格式字符串

c - 按第二个字符串对数组进行排序