我是一名相当新的计算机工程专业的学生,用C语言编写课程,以便在夏天学习更多内容。
除了简单的Diffie-Hellman实现之外,我不知道或不了解任何有关加密的知识。
我的程序只是一个基于终端且完全脱机的程序。它需要读取文件中保存的数据,并在文件完成后写回文件。我想加密程序中的I / O.
看起来很简单,但谷歌搜索让我在圈子里跑,因为我不知道到底能够到达任何地方。有没有人可以指出我有关加密基础知识和使离线程序安全的资源?
答案 0 :(得分:0)
如果您想了解使用加密输入和输出文件的一般技术,我建议使用常量实现非常简单的“加密”算法,例如XOR。例如,以下非常简单的函数可用于加密和解密:
void encrypt(char *data, size_t len)
{
while (len--) {
*data++ ^= 0xFF;
}
}
要读取加密文件,您需要读取一个数据块,对其进行解密,然后像平常一样使用它。你会做相反的写作:加密数据,然后写出来。
使用加密文件时,您将无法使用{ststio函数,例如fgets()
或fprintf()
,因为您没有机会加密/解密数据那些功能和实际的文件I / O.