Skip to main content

Custom encoder that encodes any binary data to given alphabet.

Project description

BaseN

Custom encoder that encodes any binary data to given alphabet.

Requirements

Python 3.8 and above. No additional dependencies.

Installation

pip install basen-encoder

Usage

Numbers

Encode a number to the string and back

import string

import basen

ALPHABET = string.ascii_letters + string.digits

for i in range(1000, 2000, 9):
    encoded = basen.int2base(i, ALPHABET)
    decoded = basen.base2int(encoded, ALPHABET)

    print(i, encoded, decoded)

Output:

1000 qi 1000
1009 qr 1009
1018 qA 1018
1027 qJ 1027
...

Huge numbers

Even huge numbers can be encoded as well.

import string

import basen

ALPHABET = string.ascii_letters + string.digits

NUM = 10**100

encoded = basen.int2base(i, ALPHABET)
decoded = basen.base2int(encoded, ALPHABET)

print(NUM)
print(encoded)
print(decoded)

Output:

10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Am851IcwtXApqVErDmkjfH9ikry1v4YsyaP4zUrrmM8H8j83wfxbV02K
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Encode a binary

Encode a binary data to printable text like base64 but with an arbitrary alphabet.

import string

import basen

ALPHABET = string.ascii_letters
DATA = "Some binary data..."

encoder = basen.BaseN(string.ascii_letters, 3)
encoded = encoder.encode(DATA)
decoded = encoder.decode(encoded)

print(DATA)
print(encoded)
print(decoded)

Output:

Some binary data...
aMUkfaVgYAaXhpLbbsxuaUOUCaTprkavVgx==
bytearray(b'Some binary data...')

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

basen_encoder-1.0.2.tar.gz (103.8 kB view hashes)

Uploaded Source

Built Distribution

basen_encoder-1.0.2-py3-none-any.whl (5.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page