Skip to content

File Checksum

Zero-dependency Python snippets for calculating file checksums using the standard library.

4 snippets available in this sub-category.


Simple

Calculate MD5 checksum

file checksum md5 hashlib

Calculate MD5 checksum of a file

import hashlib

with open("file.txt", "rb") as f:
    data = f.read()
    md5_hash = hashlib.md5(data).hexdigest()
print(f"MD5: {md5_hash}")

Notes

  • Reads entire file into memory
  • Returns hexadecimal string
  • Useful for file integrity verification

Calculate SHA-256 checksum

file checksum sha256 hashlib

Calculate SHA-256 checksum of a file

import hashlib

with open("file.txt", "rb") as f:
    data = f.read()
    sha256_hash = hashlib.sha256(data).hexdigest()
print(f"SHA-256: {sha256_hash}")

Notes

  • More secure than MD5
  • Longer hash (64 characters)
  • Recommended for security applications

Complex

Calculate checksum for large files

file checksum large-files chunks memory-efficient hashlib

Calculate checksums for large files using memory-efficient chunks

import hashlib


def calculate_file_checksum(filename, algorithm="md5"):
    """Calculate checksum for large files in chunks."""
    if algorithm == "md5":
        hash_obj = hashlib.md5()
    elif algorithm == "sha256":
        hash_obj = hashlib.sha256()
    elif algorithm == "sha1":
        hash_obj = hashlib.sha1()
    else:
        raise ValueError(f"Unsupported algorithm: {algorithm}")

    with open(filename, "rb") as f:
        while True:
            chunk = f.read(8192)  # Read 8KB chunks
            if not chunk:
                break
            hash_obj.update(chunk)

    return hash_obj.hexdigest()


# Calculate different checksums
md5_hash = calculate_file_checksum("large_file.txt", "md5")
sha256_hash = calculate_file_checksum("large_file.txt", "sha256")
print(f"MD5: {md5_hash}")
print(f"SHA-256: {sha256_hash}")

Notes

  • Processes file in chunks to save memory
  • Supports multiple hash algorithms
  • Handles large files efficiently
  • Useful for big files

Verify file integrity with checksum

file checksum verify integrity comparison hashlib

Verify file integrity by comparing with expected checksum

import hashlib
import os


def verify_file_integrity(filename, expected_checksum, algorithm="md5"):
    """Verify file integrity against expected checksum."""
    if not os.path.exists(filename):
        print(f"File '{filename}' does not exist")
        return False

    # Calculate actual checksum
    if algorithm == "md5":
        hash_obj = hashlib.md5()
    elif algorithm == "sha256":
        hash_obj = hashlib.sha256()
    else:
        print(f"Unsupported algorithm: {algorithm}")
        return False

    with open(filename, "rb") as f:
        while True:
            chunk = f.read(8192)
            if not chunk:
                break
            hash_obj.update(chunk)

    actual_checksum = hash_obj.hexdigest()

    # Compare checksums
    if actual_checksum.lower() == expected_checksum.lower():
        print(f"✓ File integrity verified ({algorithm})")
        return True
    else:
        print("✗ File integrity check failed!")
        print(f"Expected: {expected_checksum}")
        print(f"Actual:   {actual_checksum}")
        return False


# Verify file integrity
expected_md5 = "d41d8cd98f00b204e9800998ecf8427e"
verify_file_integrity("file.txt", expected_md5, "md5")

Notes

  • Compares calculated checksum with expected value
  • Case-insensitive comparison
  • Provides clear success/failure feedback
  • Useful for download verification

🔗 Cross-References

🏷️ Tags

file, checksum, hash, md5, sha256, integrity, io

📝 Notes

  • Use hashlib for file checksums (md5, sha256, etc.)
  • Useful for verifying file integrity
  • Always use secure hashes for security-sensitive data