保护或加密C程序的输入/输出?

时间:2014-05-21 22:06:02

标签: c security encryption terminal

我是一名相当新的计算机工程专业的学生,​​用C语言编写课程,以便在夏天学习更多内容。

除了简单的Diffie-Hellman实现之外,我不知道或不了解任何有关加密的知识。

我的程序只是一个基于终端且完全脱机的程序。它需要读取文件中保存的数据,并在文件完成后写回文件。我想加密程序中的I / O.

看起来很简单,但谷歌搜索让我在圈子里跑,因为我不知道到底能够到达任何地方。有没有人可以指出我有关加密基础知识和使离线程序安全的资源?

1 个答案:

答案 0 :(得分:0)

如果您想了解使用加密输入和输出文件的一般技术,我建议使用常量实现非常简单的“加密”算法,例如XOR。例如,以下非常简单的函数可用于加密和解密:

void encrypt(char *data, size_t len)
{
    while (len--) {
        *data++ ^= 0xFF;
    }
}

要读取加密文件,您需要读取一个数据块,对其进行解密,然后像平常一样使用它。你会做相反的写作:加密数据,然后写出来。

使用加密文件时,您将无法使用{ststio函数,例如fgets()fprintf(),因为您没有机会加密/解密数据那些功能和实际的文件I / O.