security - 在delphi7中安全删除文件

标签 security delphi file-io

我需要在完成输入文件后安全地删除它,目前我正在用零覆盖所有数据,这很乱,因为我的临时文件夹充满了旧文件,文件名也是一个安全问题。

与其将它们移到回收站,我还希望它们跳过它并消失,这与按字节删除相结合,因为数据恢复软件可以从回收站之外恢复项目。由于名称也很重要,因此我需要在删除它们之前重命名它们。

最佳答案

这是一个渐进的问题。对一个应用程序来说“安全”的东西对另一个应用程序来说是不安全的。如果安全性真的很重要,并且您发现自己在 Stack Overflow 上提出此类问题,那么很可能需要与外部安全顾问签约。真正重要的示例包括财务信息、医疗记录或法律或契约(Contract)要求保护数据的任何其他内容。我这样说并不是刻薄或暗示你没有能力解决问题,而是要指出这是一个相当复杂和不断发展的问题。

基本上完成你想完成的:

  1. 一旦您编写的代码完成,然后将文件大小更改为空 - 这会使恢复变得更加困难,因为原始文件大小已丢失。
  2. 然后将文件重命名 (RenameFile) 为不同的名称。
  3. 最后使用 DeleteFile 删除文件,这不会将文件移动到回收站。

确保文件在磁盘上的整个过程中都保持独占句柄,或者可以在删除文件之前复制它们。

正如我所说,这是一个渐进的问题。这是一个非常基本的解决方案,并且存在许多漏洞。因此,根据所需的安全级别,您可能会考虑永远不要将文件写入磁盘,或使用多次覆盖。如果安全性真的很重要,那么真正将硬盘盘片高温烧毁,然后砸烂才是唯一的办法。

编辑:您似乎删除了代码示例。

关于security - 在delphi7中安全删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/451288/

相关文章:

delphi - 如何创建实时递增值的 slider

security - 自动关联社交登录有什么安全风险(Oauth2)

c# - 使用C#进行AES解密

xml - 如何轻松提取精心指定的 XML 数据?

delphi - 组件创建问题 : field ends up nil

.net - Encoding.Default与File.ReadAllText中的无编码不同吗?

c - 如何读取C中的行

php - 在 PHP 中强制在 CSV 生成的文件中换行

用于身份验证的 Linux keytab 文件

php - 在您的实时站点上隐藏显示 mysql 查询是否安全