Small library to generate, encode and decode random base32 strings.
Project description
Small library to generate, encode and decode random base32 strings with nice properties.
Usage
import base32_lib as base32
# Generate
## Generate a random identifier
base32.generate()
# -> 'abcd1234'
# Generate a random identifier with bells and whistle
base32.generate(length=10, split_every=5, checksum=True)
# -> '3sbk2-5j060'
# Encode a pre-existing number
base32.encode(1234, split_every=3, checksum=True) == "16j-82"
# Decode an identifier
base32.decode("16j-82", checksum=True) == 1234
base32.decode("16i-82", checksum=True)
# raises ValueError
Features
Generation, encoding and decoding of base32 strings
Douglas Crockford base32 encoding
URL-safe strings with no problematic special characters
Decoding of any-case strings
Configurable length strings
Randomness through cryptographically secure random number generator
Optional ISO-7064 checksum
Optional hyphenation
Installation
The base32-lib package is on PyPI so all you need is:
pip install base32-lib
Development
pipenv run pip install -e .[docs,tests]
Tests
pipenv run ./run-tests.sh
Changes
Version 1.0.2 (2020-05-07)
Deprecate Python versions lower than 3.6.0. Now supporting 3.6.0 and 3.7.0.
Version 1.0.1 (2019-11-15)
Enforce appropriate length of the encoded base32 strings.
Version 1.0.0 (2019-11-06)
First public release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for base32_lib-1.0.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f3cbc1c4b3df7af844c9b7ffc1638a688423db2b1e51082b2c014b3959b756ae |
|
MD5 | ed54c561860597f3b805e4ee8f548426 |
|
BLAKE2b-256 | c3c95a769cb6649f2fdf366e1c10db4cafd0e6c7f8b3575d6cb5917bb9298086 |