تمرين إعادة البناء
مدقق بصمات الملفات
احسب وتحقق من SHA256 أو MD5 للملفات عبر القراءة المتدفقة.
python
~20 دقيقة
متوسط
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
import argparse
import hashlib
from pathlib import Path
def file_hash(path: Path, algorithm: str) -> str:
digest = hashlib.new(algorithm)
with path.open("rb") as file:
for chunk in iter(lambda: file.read(1024 * 1024), b""):
digest.update(chunk)
return digest.hexdigest()
def main() -> None:
parser = argparse.ArgumentParser(description="Compute or verify a file hash.")
parser.add_argument("file", type=Path)
parser.add_argument("--algorithm", choices=["sha256", "md5"], default="sha256")
parser.add_argument("--expect")
args = parser.parse_args()
value = file_hash(args.file, args.algorithm)
print(value)
if args.expect:
print("OK" if value.lower() == args.expect.lower() else "MISMATCH")
if __name__ == "__main__":
main()اكتب هنا