【问题标题】:File Shredding Concept question文件粉碎概念问题
【发布时间】:2011-06-05 00:37:34
【问题描述】:

我的电脑上有一个文件粉碎机,我想知道是否可以为了学习而用 JAVA 制作一个。但是,我不确定它是如何工作的,所以我认为它是这样做的,请纠正我的错误。

所以基本上它会一直加密文件的字节,然后简单地删除它。但这对我来说似乎太容易了,所以我一定是错过了什么或者完全错了。我查过它的工作原理,但我总是收到软件广告。

感谢您的回复

【问题讨论】:

    标签: java file shred


    【解决方案1】:

    请注意,粉碎在很大程度上取决于文件系统和媒体。尝试在基于日志的文件系统或存储在智能(写入均衡)闪存上的文件系统上“粉碎”文件不会让您走得太远。您至少必须写入足够的数据以完成填充设备,以希望旧数据可能会被覆盖一次。更有可能您必须编写几个较小的文件,当您的 FS 已满时,删除一个然后继续写入一个新文件,以确保所有保留空间也已被覆盖。那么你可能会相当安全。大概吧。

    我说可能是因为存储介质/FS 可以确定一个块出现故障(或相对使用过多)并将其映射到磁盘的其他部分来代替。当然,这是每个块的事情,因此不可能重建任何更大的文件。

    【讨论】:

      【解决方案2】:

      覆盖将解决问题,但这取决于文件系统/平台(请参阅下面的评论)。这是一个与 .NET 相关的问题(与 Java 没有太大区别)Shredding files in .NET

      【讨论】:

      【解决方案3】:

      至少,软件文件粉碎机必须将 0 写入用于保存文件的物理介质。

      【讨论】:

      • 这可能是一个愚蠢的问题,但您想将文件重命名为随机名称吗?
      • @Austin:根据文件系统,重命名文件可能会导致该文件以前存在的文件未知,但某些文件系统会对文件名进行哈希处理,因此该技术无法正常工作。另一方面,如果您重复使用包含您之前选择的文件名的字典中的随机单词,您可能可以声称合理的否认,尽管我不得不说它可能不会对您提供太多保护。
      • @Austin,这不是一回事。当你删除一个文件时,你只是删除了文件指针,数据还在,你只是丢失了指针。是的,这取决于FS的实施。您可以实施或更改您的 fs 实施以在删除时粉碎文件,但这会带来巨大的成本。
      【解决方案4】:

      您可以做的是从文件中逐一获取咬痕,将它们设置为 0,然后将它们发送到遗忘,也就是垃圾箱 :)

      【讨论】:

      • 您不需要读取字节,零并不比 1 更神奇。更好的选择(恕我直言)如果您执行一次传递,则将位设置为随机模式,因为任何中间级压缩和存储技术的特定细微差别(无论是零还是一是默认状态,以及如果该位具有固定值是否更容易查看该位是否具有先前的值)都将无关紧要。
      猜你喜欢
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 2018-01-08
      • 1970-01-01
      相关资源
      最近更新 更多