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

Function / Class Description
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
SUPPORTED_ALGORITHMS List of supported algorithm names

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.7.tar.gz (4.5 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.7-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for philiprehberger_hash_utils-0.1.7.tar.gz
Algorithm Hash digest
SHA256 1e9fe1835a80e0a2e7bcc93f664d317acb993d90766cc53df5761a73f25af347
MD5 85456fe223475f3c124648b89a7c39ec
BLAKE2b-256 389f11ef3904a506f422e11e9fbf37a61b25577da0fd0539e7b3d5635bfe7e0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for philiprehberger_hash_utils-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f538bb57192419b4ea7d2cab1fd4a62e2e356d4a460f2916b9408ab4ecbb245b
MD5 14c1de1a8d8c23106d3d575fa8a01ed1
BLAKE2b-256 1c1bb4f7e9cd0aa919f67cb40cabb12d7b222f1eaca0847ee736bc7991d9c2c3

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