Secure encryption with FUCKYOU encoding
Project description
FuckYou Crypto
Military-grade encryption that looks like spam.
Encrypt your sensitive data using only the letters F, U, C, K, Y, O. Your encrypted messages will look like profanity-laden gibberish while maintaining industry-standard AES-128 security.
Why?
- ✅ Actual secure encryption (Fernet/AES-128)
- ✅ Password-based key derivation (PBKDF2-SHA256, 480k iterations)
- ✅ Optional noise obfuscation
- ✅ Looks completely unprofessional
- ✅ Perfect for making security fun
Installation
pip install fuckyou-crypto
Quick Start
from fuckyou_crypto import encrypt, decrypt
# Encrypt with password
result = encrypt("my secret message", password="p@ssw0rd")
print(result['camo'])
# Output: FUCKYOUFUCKYOUFUCKYOU...
# Decrypt
plaintext = decrypt(
result['camo'],
password="p@ssw0rd",
salt=result['salt'],
is_password=True
)
print(plaintext) # "my secret message"
Features
🔐 Secure by Default
Uses industry-standard Fernet encryption (AES-128 in CBC mode with HMAC).
🔑 Password or Key
Choose between random key generation or password-based encryption with PBKDF2.
🎭 Noise Obfuscation
Add random characters to break up patterns and confuse frequency analysis.
🖕 FUCKYOU Encoding
All encrypted data uses only: F, U, C, K, Y, O (and lowercase variants).
Usage Examples
Basic Encryption (Random Key)
from fuckyou_crypto import encrypt, decrypt
# Encrypt
result = encrypt("hello world")
print(f"Encrypted: {result['camo']}")
print(f"Key: {result['key_info']}") # Save this!
# Decrypt
plaintext = decrypt(result['camo'], result['key_info'])
print(f"Decrypted: {plaintext}")
Password-Based Encryption
result = encrypt("secret data", password="mypassword")
# Save these:
print(f"Encrypted: {result['camo']}")
print(f"Salt: {result['salt']}")
# Decrypt
plaintext = decrypt(
result['camo'],
"mypassword",
salt=result['salt'],
is_password=True
)
With Noise Obfuscation
result = encrypt("secret", password="pass123", add_noise=True)
# Save these:
print(f"Encrypted: {result['camo']}")
print(f"Salt: {result['salt']}")
print(f"Noise positions: {result['noise_positions']}")
# Decrypt
plaintext = decrypt(
result['camo'],
"pass123",
salt=result['salt'],
noise_positions=result['noise_positions'],
is_password=True
)
API Reference
encrypt(plaintext, password=None, add_noise=False)
Encrypts plaintext message.
Parameters:
plaintext(str): Message to encryptpassword(str, optional): Password for encryption. If None, generates random keyadd_noise(bool): Whether to add noise obfuscation
Returns: Dictionary with:
camo: Encrypted FUCKYOU-encoded stringkey_info: Encryption key (if no password) or Nonesalt: Salt for password (if password used) or Nonenoise_positions: List of noise positions (if noise used) or Noneuses_password: Booleanhas_noise: Boolean
decrypt(camo, key_or_password, salt=None, noise_positions=None, is_password=False)
Decrypts FUCKYOU-encoded message.
Parameters:
camo(str): Encrypted FUCKYOU stringkey_or_password(str): Decryption key or passwordsalt(str, optional): Salt (required if password used)noise_positions(list, optional): Noise positions (if noise used)is_password(bool): Whether key_or_password is a password
Returns: Decrypted plaintext string
Security Notes
⚠️ This is real encryption! Despite the silly encoding, this uses:
- AES-128 in CBC mode (via Fernet)
- HMAC for authentication
- PBKDF2 with 480,000 iterations (OWASP 2025 standard)
- Cryptographically secure random number generation
🔒 Keep your keys/passwords safe! Losing them means losing your data forever.
🎭 Noise is optional but recommended for additional obfuscation against pattern analysis.
How It Works
- Encryption: Your plaintext is encrypted using Fernet (AES-128)
- Base64 Mapping: The resulting base64 is mapped to FUCKYOU alphabet
- Noise (Optional): Random FUCKYOU characters are injected
- Result: A string that looks like "FUCKYOUFUCKYOU..." spam
The encoding is completely reversible with the correct key/password!
Requirements
- Python 3.8+
- cryptography >= 41.0.0
License
MIT License - see LICENSE file for details
Contributing
PRs welcome! Please include tests and keep the attitude. 🖕
Disclaimer
This is a real encryption library with a joke wrapper. Use responsibly. Don't encrypt anything you can't afford to lose. The authors are not responsible for any data loss, angry sysadmins, or raised eyebrows from security auditors.
Support
If you encounter issues, please report them on GitHub: https://github.com/yourusername/fuckyou-crypto/issues
Made with 🖕 and ❤️ by Jaimin.
"Finally, a crypto library that matches my attitude."
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fuckyou_crypto-1.0.0.tar.gz.
File metadata
- Download URL: fuckyou_crypto-1.0.0.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa5006df857dd09b5ee224d3f6c94a0a24bd0c34690933ad5c41668fe14a00ae
|
|
| MD5 |
69a75af2752ce503ddbc223477b70a8d
|
|
| BLAKE2b-256 |
16ba4e34eb21fb5cbb7229641f45bcf34a00afcd390a4e9a977515d7655e8869
|
File details
Details for the file fuckyou_crypto-1.0.0-py3-none-any.whl.
File metadata
- Download URL: fuckyou_crypto-1.0.0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e0a0b712c0b033d3c3e9459b7bc9b98bb03416ed8cbe0ab11a4e9259d467f4e
|
|
| MD5 |
ed49d4238e6c31448a34f2d3e523ca3d
|
|
| BLAKE2b-256 |
2589ed6f1270fc6a9569a70cb77dd720ae7620d2204948ed15a58808fd343826
|