huuid - human UUIDs
python3-library to convert uuids forth and back to a human-readable and pronounceable format
What is huuid
hhuid does a bijective transformation from uuids to a format that can be read, pronounced and typed a lot better than the default formats.
No Information is lost in the mapping.
Here is an example-output of the demo.py in the tests-folder:
generated uuid: f3ad6cef-2732-4b18-97dd-137a459eb656
human-readable: tapratnaz-vorjonfif-Tezjozdin-sejgipneh
Afer back-translation: f3ad6cef-2732-4b18-97dd-137a459eb656
--- other usecases: ---
first 32bit human-readable: tapratnaz
generated 32bit-Password: Sunmuhnud
generated 64bit-Password: Vezvegdum-ladzibkal
How to use huuid
Install it using pip:
pip install huuid
or just put the folder huuid in your project-root. (Jep, just that one file - that's all!)
Then in python import it in your code with
import huuid
and convert any uuid-object or uuid-string to a huuid-string with
huuid.uuid2human(myUuidObject)
Optionally you can limit the huuid-string to the 32, 64 or 96 bit:
huuid.uuid2human(myUuidObject, 64)
Convert it back to a uuid-string with
huuid.human2uuid(myUuidObject)
Background
The hexadecimal representation of the UUID is translated to letters that have an unambiguous pronounciation. The 2nd, and then every third letter is a vowel, the other ones are consonants which makes up a well pronounced word that sounds like it is made up of syllables.
There are 5 vowels and 16 consonants (just unambiguous ones) being used, and (only) for the first letter capitals are allowed. (And a capital-C additional to the 16 chosen unambiguous consonants to reach 32bit with 9 letters)
With this pattern there are a little more than 2^32 possibilities to generate a word with 9 letters. 4 "Words" hit the 128bit of UUIDs (>10^38).
Dependencies
This only uses the python3-modules uuid and math.
Credits
This is highly inspired by
https://arxiv.org/html/0901.4016
published by Daniel Shawcross Wilkerson and its implementation:
Release files for huuid 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| huuid-0.9.0.tar.gz | 16.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| huuid-0.9.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 32.3 kB
Release files / huuid-0.9.0.tar.gz
| Download URL | huuid-0.9.0.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d2fabd579da4ac2a731ce8e1eb05b66b1fa8ec2bdb2c598c5182bf93307a9b34
|
|
BLAKE2b-256 checksum How to use checksums |
86e3bde1d1960afa914bf2539654cf541eb448e384e27709aa12495fb69491d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 27, 2025.
Transparency logRelease files / huuid-0.9.0-py3-none-any.whl
| Download URL | huuid-0.9.0-py3-none-any.whl |
|---|---|
| Size | 16.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5af7eb8cb037efe542faace443d1584647ea58ccada1bde88b792f25635fdb0
|
|
BLAKE2b-256 checksum How to use checksums |
cb82e9f6ec386eb644edd99beee6db4a2e13d47eede2c653df1cf2ea42a7fb61
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 27, 2025.
Transparency log