用Python或Ruby编写文件粉碎器?

4 投票
2 回答
2464 浏览
提问于 2025-04-15 22:17

在学习Python和/或Ruby的过程中,我在想一个文件粉碎机是怎么实现的?我希望它能接收一个文件作为输入,然后用一种算法把这个文件弄得无法恢复。以后可能还会增加对多个文件或者整个文件夹的支持。

2 个回答

1

因为这是一个学习练习,而不是专业的数据安全尝试。那么可以这样做:

  1. 先找出文件的长度。
  2. 然后写入和文件长度一样多的0。
  3. 保存这个文件。
  4. 最后删除这个文件。

接着再写一个程序,试着恢复这个文件。

不过如果你想做一些专业的东西,而不仅仅是练习的话,可以看看kitsune的回答。

4

首先要提醒一下,碎纸机在现代系统上效果可能会有差异。这是因为现代系统使用了一些技术,比如日志记录、写时复制文件系统、闪存的磨损均衡等。这些技术可能会影响数据的彻底删除。你可以去维基百科看看相关的陷阱。


简单来说,你需要能够直接在现有数据上进行写入。有几种不同的安全级别的方法,但通常情况下,如果你用随机数据覆盖文件大约25次(向上取整到下一个块大小),那么这个文件应该是完全无法恢复的(至少那份数据是这样)。还有其他一些技术可以在更少的覆盖次数下安全地删除数据(比如3次覆盖,先用随机数据,再用1,再用0,这样也能达到不错的效果)。

撰写回答