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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file basen_encoder-1.0.2.tar.gz.

File metadata

  • Download URL: basen_encoder-1.0.2.tar.gz
  • Upload date:
  • Size: 103.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.12.4 CPython/3.12.2

File hashes

Hashes for basen_encoder-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7e44f5b50aa134ea5136314def9da85b52c06c6bcdcc9a4a916a7e7d991e6003
MD5 73a8c0ad9495cb0a87c5670a81ea3fce
BLAKE2b-256 b0053e78bed3d03f8ea7313a7e0515bf00a096dca841a41ccc1eb358785eea63

See more details on using hashes here.

File details

Details for the file basen_encoder-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for basen_encoder-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 76c57def490bae3da454b6ca16b83d41bd10cfe63f0d871119ef539337e17399
MD5 40d6aa5d48e7cff6ed3265bc5f370581
BLAKE2b-256 b8aec4dfc9a07bcfe540e397602dd669d82e0d7ad3d597edf0e7815a52361ebb

See more details on using hashes here.

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