SelfPowerDecomposer
A Python package for large integer compression and secure encoding using self-power decomposition.
Description
SelfPowerDecomposer provides tools for compressing large integers using a novel approach based on self-power decomposition. It offers both standard compression and secure encoding options.
Features
- Efficient compression of large integers
- Secure encoding with key-based protection
- Binary file I/O utilities
- Various encoding/decoding utilities (delta, RLE, zigzag, varint)
Installation
pip install selfpowerdecomposer
Usage
Basic Compression
import selfpowerdecomposer
# Compress a large number
large_number = 123456789012345678901234567890
encoded_data = selfpowerdecomposer.encode_number(large_number)
# Decompress back to the original number
decoded_number = selfpowerdecomposer.decode_number(encoded_data)
print(f"Original: {large_number}")
print(f"Encoded size: {len(encoded_data)} bytes")
print(f"Decoded: {decoded_number}")
print(f"Match: {large_number == decoded_number}")
Secure Encoding
import selfpowerdecomposer
import random
# Generate a large number
large_number = 123456789012345678901234567890
# Securely encode with removed values (no placeholders)
encoded_data, removed_info = selfpowerdecomposer.secure_encode_number_no_placeholder(
large_number,
removal_count=5
)
# Save the removed info (this would be your "key")
selfpowerdecomposer.save_removed_info_no_placeholder(removed_info, "key.bin")
# Later, to decode:
removed_info = selfpowerdecomposer.load_removed_info_no_placeholder("key.bin")
decoded_number = selfpowerdecomposer.secure_decode_number_no_placeholder(encoded_data, removed_info)
print(f"Original: {large_number}")
print(f"Decoded: {decoded_number}")
print(f"Match: {large_number == decoded_number}")
Requirements
- Python 3.6+
- gmpy2
- numpy
- matplotlib (optional, for visualization)
License
MIT License
Metadata
Release files for selfpowerdecomposer 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| selfpowerdecomposer-0.1.2.tar.gz | 13.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| selfpowerdecomposer-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.7 kB
Release files / selfpowerdecomposer-0.1.2.tar.gz
| Download URL | selfpowerdecomposer-0.1.2.tar.gz |
|---|---|
| Size | 13.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0179409892cb8c020a581b3b1ec6fa4a18fd42beab389780b60b6a71398186c
|
|
BLAKE2b-256 checksum How to use checksums |
ba00fd9c0b34c503f2ce9e2eacf16aaa729b05801c6e33b0c9210cf80b3d6640
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Release files / selfpowerdecomposer-0.1.2-py3-none-any.whl
| Download URL | selfpowerdecomposer-0.1.2-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d339a3f045891a47e9c18d0f1acf8eb092f824cae768bef476b64f2d3ecf040f
|
|
BLAKE2b-256 checksum How to use checksums |
29be35f16bf7c768bea4e332bdf6027f60ebbcb8d00dfccfc4071a5463ebb141
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|