An easy way to use different encoding: bytes, hex, ascii array, binary, long, base64
Project description
Fast Encode - Encoding Made Easy
With Fast Encode you can create a single object that automatically uses many encoding types.
Overview
The Fast Encode module provides the following features:
- A single object that abstracts the following encodings: hex, ascii array, string, bytes, binary and long number.
- Many helper functions that makes changing encoding easier.
Getting Started
-
First, you need to download it from pip.
pip install fastencode -
Then import it to your project.
from fastencode import DataObj as D
Creating and Using an Object
For each encoding type, there is factory function that creates a DataObj object from it.
The factory functions are: fromHex, fromAsc, fromStr, fromBin, fromNum and fromBytes.
plaintext = D.fromStr('secret_msg') # This creates a Data object from a plain string
key = D.fromHex('deadbeef1234')# This creates a Data object from hex
Printing the DataObj will show a lot of different encoding at once:
print(f'Output - {plaintext}')
Output - Hex: 7365637265745f6d7367, Ascii: [115, 101, 99, 114, 101, 116, 95, 109, 115, 103],
String: secret_msg, Number: 544942432582961455788903
Binary: 01110011011001010110001101110010011001010111010001011111011011010111001101100111
We can get to a specific encoding by using the DataObj fields: hex, asc, str, bytes, bin and num.
print(key.bytes)
# prints b'\xde\xad\xbe\xef\x124'
print(key.asc) # asc is shorthand for ascii, and is a list of integer of the indvidual ascii value of every byte.
# prints [222, 173, 190, 239, 18, 52]
Simple XOR exmaple
Let's take a look at a simple example of XOR-ing 2 strings. We will see how simple it is to do with fastencode.
from fastencode import DataObj as D
plaintext = D.fromStr('secret_msg')
key = D.fromStr('secret_key')
xored_integer_value = plaintext.num ^ key.num # ^ is the python operand for xor
print(xored_integer_value) # prints 398878
ciphertext = D.fromNum(xored_integer_value) # Creating another Data object from the result of the xor
print(ciphertext) # prints Hex: 6161e, ascii: [97, 97, 14], String: aa, Number: 398878 Binary: 011000010110000100001110
Note: In the example the result is only 3-bytes long - as expected - because the first 7 bytes match and are therefore removed.
Forking and Contribution Ideas
- Creating a genreal function that automatically detects the type of the encoding.
- Adding base64 and base32 encodings.
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
File details
Details for the file fastencode-1.4.tar.gz.
File metadata
- Download URL: fastencode-1.4.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adb58ba11705206622b2e571def1f5765dcdc86444b1f1417c771672bd5869ab
|
|
| MD5 |
4a84afa4c78d48331b74ae4bf6bdeee5
|
|
| BLAKE2b-256 |
cd8fb70ef55934e6020b8c0594b3e71f49faaca117188bad44ae2d7679977d96
|