c++ - 如何保证在运行时解密的文件被清理干净?

标签 c++ c encryption filesystems

使用 C 或 C++,在我将文件解密到磁盘后 - 如果应用程序崩溃或系统断电并且无法正确清理它,我如何保证它被删除?在 Windows 和 Linux 上使用 C 或 C++?

最佳答案

不幸的是,没有 100% 万无一失的方法来确保在整个系统崩溃的情况下删除文件。想一想如果用户在文件在磁盘上时拔下插头会发生什么。再多的异常处理也无法保护您免受这种(最坏的)情况的影响。

你能做的最好的事情就是首先不要将解密文件写入磁盘。如果文件以加密和解密两种形式存在,则表明您的安全存在薄弱环节。

您可以做的下一个最好的事情是使用 Brian 的结构化异常处理建议来确保清理临时文件。这不会保护您免受所有可能性的影响,但会大有帮助。

最后,我建议您在启动应用程序时检查临时解密文件。这将允许您在应用程序完全崩溃的情况下进行清理。将这些文件保留任何 时间并不理想,但至少这可以让您尽快摆脱它们。

关于c++ - 如何保证在运行时解密的文件被清理干净?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/278273/

相关文章:

c++ - && 运算符的交换属性问题

c - 指向数组元素的指针

swift - 使用 CryptoSwift 和 CryptoJS 的 AES 加密

linux - 如何从命令任务传递加密密码以执行脚本以调用 pmrep

c++ - 将文件输出到特定文件夹 C++ Windows 7

c++ - 如何在 vim 中使用 cmake/gcc 编译/跳转调试

c - 由于无效指针而出现段错误

encryption - 编码、压缩

c++ - 带有 VS 2015 命令提示符的 Visual Studio 2017 + vcvarsall 无效 + 找不到 nmake

c++ - 在 char 数组中查找最多 6 个连续 0 位的最快方法