我的计算机上有一个文件粉碎机,我想知道是否可以在JAVA中制作一个只是为了学习。但是,我不确定它究竟是如何工作的,所以这就是我认为它的作用,请在我错的地方纠正我。
所以基本上它一直在加密文件的字节,然后简单地删除它。但这对我来说似乎太容易了,所以我必须遗漏一些东西或完全错误。我已经查明它是如何工作的,但我总是得到软件广告。
感谢您的回复
答案 0 :(得分:4)
请注意,碎化非常依赖于文件系统和媒体。尝试在基于日志的文件系统或存储在智能(写入调平)闪存上的文件系统上“粉碎”文件并不会让你走得太远。您必须至少编写足够的数据来完成填充设备,以避免旧数据被覆盖一次。更有可能你需要编写几个较小的文件,当你获得FS满时,删除一个,然后继续写一个新文件,以确保所有保留空间也被覆盖。那么你可能会相当安全。可能。
我说可能是因为存储介质/ FS可能会判断一个块出现故障(或相对使用过多)并将其映射为替代磁盘的其他部分。当然,这是一个单块的东西,所以任何更大的文件都不太可能被重建。
答案 1 :(得分:1)
软件文件粉碎程序至少必须将0写入用于保存文件的物理介质中。
答案 2 :(得分:1)
覆盖将解决问题但它取决于文件系统/平台(请参阅下面的注释)。这是与.NET相关的问题(与Java没有太大区别)Shredding files in .NET
答案 3 :(得分:0)
你可以做的是逐个从文件中获取,将它们设置为0并将它们发送到遗忘名称(即垃圾):)