gpt4 book ai didi

java - 安全删除java实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:51 26 4
gpt4 key购买 nike

我需要实现 Gutmann用于安全删除数据库表中某些数据的算法。首先,它在数据库中有效吗?

我不确定这 35 个步骤。对于 1-4 和 32-35,很明显,生成一些随机数据。但我不确定第 5-31 步。在 Wikipedia 表中,给定步骤有 3 个字节,这些步骤是随机运行的,有些相同有些不同。参见第 8 步,十六进制:49 24 92。现在假设我有一个长度为 25 字节的列要删除。我该怎么做,以 3 字节为单位?第 25 个字节呢?

最佳答案

不幸的是,问题在于安全删除驻留在磁盘上的数据的唯一方法是“删除”驱动器上所有未使用的扇区。这适用于基于文件的解决方案,因为当您删除文件时,操作系统会将扇区标记为可用(即:未使用),因此您可以删除它们。

数据库的问题在于您无法控制实际的文件结构;数据库为您抽象了所有这些。因此,例如,您可能会从数据库中的列或行中删除数据,但根据数据库处理删除的方式,数据最初所在的扇区可能仍被标记为由数据库使用。由于表的所有数据都保留为同一文件的一部分(即:数据库的持久文件状态),因此无法确定该数据最初位于磁盘上的位置,而且无法确保数据库没有它已经为其他东西回收了该空间。

即使您要安全地写入/删除/重写数据库中的相同字段,也不能保证(实际上不太可能)数据将写入驱动器上的相同扇区。

综上所述,多项研究表明,从磁介质中恢复已删除/覆盖的数据(而不是仅仅释放扇区空间)虽然在理论上是可行的,但问题很大且不太可能成功。

p>

请记住,安全删除数据的原则在处理 SSD 时会发生显着变化(因为使用的扇区会发生变化以确保数据写入的均匀分布),甚至在某些 RAID 设备中也是如此。

不幸的是,对于SSD,我不知道是否有任何解决方案可以确保所有扇区都被彻底清理干净。对于 RAID,您需要打破 RAID,然后单独安全删除每个驱动器以确保安全。

关于java - 安全删除java实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com