Skip to main content

Simplified hashing helpers for strings, files, and checksums

Project description

philiprehberger-hash-utils

Tests PyPI version License

Simplified hashing helpers for strings, files, and checksums.

Installation

pip install philiprehberger-hash-utils

Usage

Hash Strings and Bytes

from philiprehberger_hash_utils import hash_string, hash_bytes

hash_string("hello world")                # SHA-256 hex digest
hash_string("hello world", "md5")         # MD5 hex digest
hash_bytes(b"\x00\x01\x02", "sha512")    # SHA-512 hex digest

Hash Files

from philiprehberger_hash_utils import hash_file

digest = hash_file("large_file.bin")  # Streams in chunks
digest = hash_file("data.csv", algorithm="blake2b")

Hash Dictionaries

from philiprehberger_hash_utils import hash_dict

# Deterministic — key order doesn't matter
hash_dict({"b": 2, "a": 1}) == hash_dict({"a": 1, "b": 2})  # True

Verify Checksums

from philiprehberger_hash_utils import verify_checksum

# Timing-safe comparison
is_valid = verify_checksum("download.zip", expected_sha256)

Supported Algorithms

md5, sha1, sha256 (default), sha512, blake2b

API

  • hash_string(s, algorithm="sha256") — Hash a string
  • hash_bytes(data, algorithm="sha256") — Hash raw bytes
  • hash_file(path, algorithm="sha256", chunk_size=8192) — Hash a file (streaming)
  • hash_dict(d, algorithm="sha256") — Deterministic dict hash
  • verify_checksum(path, expected, algorithm="sha256") — Timing-safe file verification

Development

pip install -e .
python -m pytest tests/ -v

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

philiprehberger_hash_utils-0.1.4.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

philiprehberger_hash_utils-0.1.4-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file philiprehberger_hash_utils-0.1.4.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_hash_utils-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9641c4bbb72be1f24168beb6701274a3e26f9385b966fe21eaf5b60cff5ee8b1
MD5 bdc968e44ce497fe9ae6f42410f4bd31
BLAKE2b-256 2885276597e0305a43307414f23fe8266272635917ce433b4e81a644ad231da6

See more details on using hashes here.

File details

Details for the file philiprehberger_hash_utils-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_hash_utils-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1dc1432e49a99b9f9d28139fc58cce7fa73df566f0107a426ac72113bf11a101
MD5 e354237d41d8c6e896a5f42d5a3284fe
BLAKE2b-256 d99db486a81387c9ac064bab113c8f69a4671b49370bdb1a15ae422f449f282a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page