mystipy
This is an extremely simple command-line utility for obfuscating and deobfuscating data.
Features
- Data is automatically compressed using gzip.
- Customizable encryption key (XOR) and salt size.
- Prompt mode for interactive input.
- Hexadecimal encoding is used on the output by default, but a
--binaryoverride is available.
Installation
The program is a single file, so you can just download/run it manually: python mystipy.py
For the sake of convenience (and to be added to your $PATH), it is also available on PyPI.
pip install --upgrade mystipy
Usage
Basic Commands
-
Obfuscate a file:
mystipy input_file output_file
-
Deobfuscate a file:
mystipy input_file output_file --reverse
Options
-p, --prompt: Prompt mode. If provided, you will be prompted for any arguments you don't explicitly set.-r, --reverse: Deobfuscate the input file.-k, --key: XOR key for encryption/deencryption. Must be a valid byte string. (Default: "mystipy")-s, --salt: Number of bytes to use in salt. (Default: 16)--binary: Disable exadecimal encoding/decoding. The data will be (or is) compressed binary data.
Examples
-
Obfuscate a file with a custom key and default settings:
mystipy myfile.txt obfuscated.myst -k "hunter2"
-
Deobfuscate a binary encoded file:
mystipy obfuscated.myst deobfuscated.txt -r --binary
-
Use prompt mode for interactive input:
mystipy -p -
Use it in your own program:
import mystipy # Define your key and data key = "hunter2".encode() data = b"I would tell you a joke about UDP, but I'm not sure if you'd get it." # Obfuscate the data obfuscated_data = mystipy.obfuscate(data, key) print(f"Obfuscated data: {obfuscated_data}") # Deobfuscate the data deobfuscated_data = mystipy.deobfuscate(obfuscated_data, key) print(f"Deobfuscated data: {deobfuscated_data.decode()}")
Function Aliases
The script includes function aliases to remove ambiguity if you're using it in your own code:
mystipyforobfuscatedemystipyfordeobfuscate
import mystipy
print(mystipy.mystipy == mystipy.obfuscate) # True
print(mystipy.demystipy == mystipy.deobfuscate) # True
So if you'd prefer to use the aliases, you'd import the obfuscation/deobfuscation functions like this:
from mystipy import mystipy, demystipy
Release files for mystipy 0.7.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mystipy-0.7.5.tar.gz | 6.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mystipy-0.7.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.1 kB
Release files / mystipy-0.7.5.tar.gz
| Download URL | mystipy-0.7.5.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef01fc77aa76faffeefcafdba043b20d27b36b2990d09d3f5906aabf4d299ab4
|
|
BLAKE2b-256 checksum How to use checksums |
e83ef731afdd3d2a3823b71b2ebadaa7d85e84e5ddadb443ae5dc0f0143e416c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|
Release files / mystipy-0.7.5-py3-none-any.whl
| Download URL | mystipy-0.7.5-py3-none-any.whl |
|---|---|
| Size | 5.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd568139169b666bd8a44da63912388ebf369a95efd140945f5fec55a499f415
|
|
BLAKE2b-256 checksum How to use checksums |
eb3ddc6bd10c095a47333afb8fc8cc952cc90aa15ac0125e4f833ac1bbe85e16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.19
|