import hashlib
import os
from pathlib import Path
def sha256_file(path: Path) -> str:
h = hashlib.sha256()
with path.open("rb") as f:
for chunk in iter(lambda: f.read(1024 * 1024), b""):
h.update(chunk)
return h.hexdigest()
def secure_delete(path: Path, passes: int = 3) -> None:
length = path.stat().st_size
with path.open("r+b") as f:
for _ in range(passes):
f.seek(0)
f.write(os.urandom(length))
f.flush()
os.fsync(f.fileno())
path.unlink()
import hashlib
import os
from pathlib import Path
def sha256_file(path: Path) -> str:
h = hashlib.sha256()
with path.open("rb") as f:
for chunk in iter(lambda: f.read(1024 * 1024), b""):
h.update(chunk)
return h.hexdigest()
def secure_delete(path: Path, passes: int = 3) -> None:
length = path.stat().st_size
with path.open("r+b") as f:
for _ in range(passes):
f.seek(0)
f.write(os.urandom(length))
f.flush()
os.fsync(f.fileno())
path.unlink()