c++ - 仅存在于 RAM 中的临时文件?

标签 c++ temporary-files ram one-time-password

我正在尝试使用 OTP 方法编写加密。为了与安全理论保持一致,我需要将纯文本文档仅存储在内存中,永远不要写入物理驱动器。 tmpnam 命令似乎是我所需要的,但据我所知,它将文件保存在磁盘上而不是 RAM 上。

使用 C++ 是否有任何(独立于平台的)方法允许文件仅存在于 RAM 中?如果可能,我想避免使用 RAM 磁盘方法。

谢谢

编辑: 谢谢,这对我来说更像是一个学习的东西,我是加密的新手,只是通过不同的方法工作,我实际上并不打算使用其中的许多方法(特别是 OTP,因为“垫”使原始文件大小加倍").

老实说,我是 Linux 用户,所以放弃 Windows 也不算太糟糕,我目前正在考虑使用 RAM 磁盘,因为 FUSE 对于“学习”来说似乎有点过分了。

最佳答案

简单的回答是:不,没有独立于平台的方法。即使只将数据保存在内存中,它仍然有被虚拟内存管理器换出到磁盘的风险。

在 Windows 上,您可以使用 VirtualLock() 强制内存保留在 RAM 中。您还可以使用 CryptProtectMemory() 来防止其他进程读取它。

在 POSIX 系统(例如 BSD、Linux)上,您可以使用 mlock() 将内存锁定在 RAM 中。

关于c++ - 仅存在于 RAM 中的临时文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/551595/

相关文章:

ruby-on-rails - 使用 Tempfile 在 rails 中创建一个 zip 文件

MySQL 最大内存使用量

c++ - 重新声明 C++ 内置类型 'wchar_t' windows 10 glut cpp

.net - 计数 "new"和 "delete"字节

django - 权限错误 : [Errno 13] Permission denied: 'C:\\Users\\...\\AppData\\Local\\Temp\\tmp24xoaa7g'

c - 什么是最小化 RAM 消耗的良好实现实践

c - STM32创建RAM段

c++ - MapViewOfFile 是否有可能两次返回相同的地址?

c++ - 获取“段错误 : core dumped when trying to write string to setter

Python删除临时文件报错--仍在使用