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.0 (2019-10-XX)
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
base32-lib-1.0.0.tar.gz
(12.9 kB
view hashes)
Built Distribution
Close
Hashes for base32_lib-1.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6631026f2074da326654a9384a0232ae654f14a47cfeb08a2287b17fe0ff374 |
|
MD5 | d122120d36220a3a90f7cc609df2dc0a |
|
BLAKE2b-256 | c787312571718fe59b91cf9dac8640747a6b26a4a23bab089e0cbcfb5cf7ffda |