截断文件SECURELY(php)

时间:2016-09-19 00:21:53

标签: php file filesystems truncate erase

  • 拥有包含敏感数据的文件。
  • 然后从最后读一些东西,例如最后1000个字节。
  • 然后截断这些东西。但不是那么容易 - 我希望这些数据永远不会恢复 - 所以要安全地截断它们。我的意思是不会从那些曾经读过的字节中留下任何字节。
  • 一个选项是将它们全部改为空字节。但是怎么样?

在PHP中,一个立即浮现在我脑海中的解决方案:

$offset = filesize($file) - 1000;
$h = fopen($file, 'r+b');
// read my data

fseek($h, $offset);
fwrite($h, str_repeat("\x00", 1000), 1000);
fclose($h);

$h = fopen($file, 'cb');
ftruncate($h, $offset);
fclose($h);
  • 问:解决方案会严格改变文件中存在的字节吗?
  • 问题:是否需要双重开闭执行? (不确定fread是否会立即写入数据,或者在资源指针关闭后缓存和写入数据。

可能会更多Q'回合文件系统而不是编程。我使用NTFS(Win),但我喜欢我的应用程序是跨平台的。

知道'回合shredSecure delete with PHP 5.3.x),但不是解决方案。

0 个答案:

没有答案