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.5.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.5-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for philiprehberger_hash_utils-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b4eb51a8bbe278cc6c0aafc68f9be09136f1f12dabcc63f7845dcd7cf228b1fa
MD5 141c1e5c22607edc083b5d8efb67ff6c
BLAKE2b-256 c9cdedd05f213792232ca3a2382a306f0af06692abca96fce86a8a6c601beb91

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for philiprehberger_hash_utils-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 1e5ccf9a173e893e8d5f7b2c05e3420746d5310e7489727d7474041e4fe42616
MD5 3b46a728ec7cedf6ae8f248fe4241a59
BLAKE2b-256 c067a0e4674834847cfcce58c5c8f6cc6de1f65b5cbc70a7dfa97c136c905ab6

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