是否可以使用file.delete.delete.cencrypt将其用于切碎文件?还是两个功能都不覆盖磁盘上的实际内容?而且,如果他们这样做,这也可以与SSD的磨损和其他储藏的类似技术合作?还是我应该使用的另一个功能?
我正在尝试改进一个开源项目,该项目当前将凭据存储在文件中。由于原因总是写入该文件的原因(我不知道为什么Ansible会这样做,但是目前我不想触摸代码的一部分,因此可能有一些正当的理由,为什么这样,为什么至少现在(,然后我可以删除该文件。那么使用file.delete还是file.cencrypt清除磁盘上的信息的正确方法?
编辑:如果只有使用本机API和PINVOKE才有可能,我也很好。我不仅限于.NET,还限于C#。
edit2:提供一些上下文:明文凭据由Ansible内部列表保存,因为它们作为在目标窗口主机上执行的模块的变量传递。该文件负责再次检索变量:https://github.com/ansible/sible/blob/devel/lib/lib/lib/ansible/module_utils/powershell/powershell/ansible.moduleutils.legacy.psm1#l287https://github.com/ansible/ansible/blob/devel/lib/anible/module_utils/csharp/ansible.basic.cs.cs#l373
file.encrypt可能会做更多的帮助数据。/p>
在操作系统和硬件级别上都有很多事情发生,这是与.NET代码分开的几个抽象层。例如,您的文件系统可以随机决定将其物理存储在磁盘上存储的位置,因此覆盖您当前认为该文件的位置可能实际上无法从先前存储的文件中删除痕迹。即使您成功地覆盖了文件的正确部分,磁盘本身上通常也有残留的信号,这些信号可能会被带有正确设备的人接收。某些文件系统并没有真正覆盖任何内容:它们每次发生更改时都会添加信息,因此您始终可以找出磁盘的内容在任何给定时间点。
因此,如果您合法地无法阻止保存文件,则任何真正擦除的尝试都将是不完美的。如果您愿意接受不完美,并且只想减轻某种问题的可能性,那么您可以使用发现尝试使用垃圾数据覆盖文件的策略,并希望获得最好的。
但是我不会太快就放弃解决问题的来源。例如,Ansible的文档提到:
,如果您不需要以每主机为基础生成随机密码,则是密码查找插件的绝佳替代方法,就是在剧本中使用保险库。阅读那里的文档并首先考虑使用它,对于大多数应用程序,它将更理想。