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

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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for philiprehberger_hash_utils-0.1.6.tar.gz
Algorithm Hash digest
SHA256 a33823ba445176191203fe744a443d549dc60744234914754aa5af7ff38ef7ab
MD5 f31b41883f37144288f47c6bb4ffb4cc
BLAKE2b-256 e8d7dc2a05df63591c4737f4183263c4459ef109ae3902b04227eb9dfc1294b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for philiprehberger_hash_utils-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 19b95b371e92659d9a1bd4fbadf087606a66a01058a7f50a869e208ecf17f8a9
MD5 c450591ab2bb1b6fa5fae4d924ce32a3
BLAKE2b-256 949f1ffc3b531370b4ae53a8db82bb02e0623cf0180770af39910510732ffde1

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