AzLearn

تمرين إعادة البناء

مدقق بصمات الملفات

احسب وتحقق من 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()
اكتب هنا