当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《仅存在于RAM中的临时文件?》经验,为你挑选了2个好方法。

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

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

谢谢

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

如果我完全诚实,我是一个Linux用户,所以放弃Windows也不会太糟糕,我现在正在考虑使用RAM磁盘,因为FUSE似乎对于"学习"的东西有点过分.



1> flodin..:

简单的答案是:不,没有平台独立的方式.即使只将数据保存在内存中,虚拟内存管理器仍然可能会将数据换成磁盘.

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

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



2> peterchen..:

除非你计算内存流(比如stringstream),否则不是真的.

特别是出于安全目的而言:任何数据都可以交换到虚拟内存系统上的磁盘.

通常,如果您担心安全性,则必须使用特定于平台的方法来控制访问:如果每个人都可以读取数据,那么将数据保存在RAM中有什么用呢?

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有