Secure text-to-image encryption library using advanced cryptographic techniques
Project description
CryptoPix - Commercial Text-to-Image Encryption Library
A powerful commercial Python library for encrypting text into images using advanced cryptographic techniques and converting them back to text with password-based security.
© 2025 CryptoPix Team. All rights reserved. This software is proprietary and requires a commercial license for use.
🔐 Features
- Advanced Encryption: Password-derived key generation using PBKDF2-HMAC-SHA256
- Secure Key Management: Dynamic color table shuffling based on derived keys
- Lossless Compression: WebP image generation with no data loss
- Post-Quantum Resistance: Symmetric cryptography designed for future security
- Smart Key System: Encrypted metadata packaging for enhanced security
- Simple API: Easy-to-use interface for developers
- Command Line Tool: Built-in CLI for terminal usage
🚀 Quick Start
Installation
pip install cryptopix
Basic Usage
from cryptopix import CryptoPix
# Initialize
cp = CryptoPix()
# Encrypt text to image
image_data, smart_key = cp.encrypt("Hello, World!", "my_password")
# Save encrypted image
with open("encrypted.webp", "wb") as f:
f.write(image_data.getvalue())
# Decrypt image back to text
from PIL import Image
image = Image.open("encrypted.webp")
result = cp.decrypt(image, smart_key, "my_password")
print(result['content']) # "Hello, World!"
Convenience Functions
from cryptopix import encrypt_text, decrypt_image
from PIL import Image
# Quick encryption
image_data, smart_key = encrypt_text("Secret message", "password123")
# Quick decryption
image = Image.open("encrypted.webp")
result = decrypt_image(image, smart_key, "password123")
🖥️ Command Line Usage
Encrypt text to image
cryptopix encrypt -t "Hello World" -p mypassword -o encrypted.webp
Encrypt file contents
cryptopix encrypt -f input.txt -p mypassword -o encrypted.webp
Decrypt image to text
cryptopix decrypt -i encrypted.webp -k "cryptopix_v2:..." -p mypassword
Decrypt and save to file
cryptopix decrypt -i encrypted.webp -k "cryptopix_v2:..." -p mypassword -o output.txt
📚 Advanced Usage
Custom Image Dimensions
from cryptopix import CryptoPix
cp = CryptoPix()
# Specify custom width
image_data, smart_key = cp.encrypt("Long text content", "password", width=100)
Error Handling
from cryptopix import CryptoPix
from cryptopix.core.exceptions import (
EncryptionError,
DecryptionError,
InvalidPasswordError
)
cp = CryptoPix()
try:
image_data, smart_key = cp.encrypt("text", "password")
except EncryptionError as e:
print(f"Encryption failed: {e}")
try:
result = cp.decrypt(image, smart_key, "wrong_password")
except InvalidPasswordError:
print("Incorrect password provided")
except DecryptionError as e:
print(f"Decryption failed: {e}")
Working with Binary Data
# The library can handle binary data too
import base64
# If decryption returns binary data
result = cp.decrypt(image, smart_key, "password")
if result['type'] == 'binary':
binary_data = base64.b64decode(result['content'])
# Process binary data
🔧 API Reference
CryptoPix Class
encrypt(text: str, password: str, width: int = None) -> tuple
Encrypt text into a WebP image.
Parameters:
text: Plain-text data to encryptpassword: User-provided passwordwidth: Optional image width (auto-calculated if None)
Returns: Tuple of (BytesIO image data, smart_key string)
decrypt(img: Image.Image, smart_key: str, password: str) -> dict
Decrypt an encrypted WebP image back to text.
Parameters:
img: PIL Image objectsmart_key: Smart key from encryption processpassword: Same password used for encryption
Returns: Dictionary with 'content', 'type', and 'success' keys
Exception Classes
CryptoPixError: Base exception for all CryptoPix errorsEncryptionError: Raised when encryption failsDecryptionError: Raised when decryption failsInvalidPasswordError: Raised when password is incorrectInvalidKeyError: Raised when smart key is invalidUnsupportedFormatError: Raised for unsupported file formats
🔒 Security Features
Cryptographic Strength
- PBKDF2-HMAC-SHA256 with 100,000 iterations
- AES-256-GCM for metadata encryption
- 256-bit derived keys from user passwords
- 128-bit random salts for each encryption
Post-Quantum Resistance
- Symmetric cryptography design
- No reliance on factoring or discrete logarithm problems
- Future-proof against quantum computer attacks
Security Best Practices
- Constant-time operations where possible
- Secure random number generation
- Memory-safe implementations
- No key material stored in plaintext
📋 Requirements
- Python 3.8 or higher
- Pillow (PIL) >= 10.0.0
- cryptography >= 41.0.0
- numpy >= 1.24.0
🔧 Development Setup
git clone https://github.com/cryptopix/cryptopix-python.git
cd cryptopix-python
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black .
# Type checking
mypy cryptopix/
📊 Performance
Benchmarks
- Small text (< 100 chars): ~10ms encryption, ~5ms decryption
- Medium text (1KB): ~50ms encryption, ~25ms decryption
- Large text (10KB): ~200ms encryption, ~100ms decryption
Memory Usage
- Efficient chunking: 24-bit color mapping
- LRU caching: Optimized for repeated operations
- Streaming: Large files processed without full memory load
💳 Commercial Licensing
CryptoPix is a commercial software product. Different licensing options are available:
📋 License Types
Evaluation License (FREE - 30 days)
- Personal evaluation and testing only
- Non-production environments
- Limited to 30 days usage
- No commercial deployment
Developer License ($299/year)
- Single developer use
- Development and testing environments
- Up to 1,000 API calls per month
- Email support
Professional License ($999/year)
- Team use (up to 5 developers)
- Production deployment allowed
- Up to 100,000 API calls per month
- Priority support and documentation
Enterprise License (Custom pricing)
- Unlimited developers and deployments
- Unlimited API calls
- Custom integrations and features
- Dedicated support and SLA
- On-premise deployment options
🛒 Getting a License
- Contact Sales: Email founderg@cryptopix.com
- Specify Requirements: Development team size, expected usage
- Receive Quote: Custom pricing based on your needs
- License Delivery: Receive license key and documentation
📄 License Terms
This software is proprietary and confidential. Key restrictions include:
- No distribution or sublicensing without permission
- No reverse engineering or modification
- Production use requires valid commercial license
- Evaluation limited to 30 days
For complete terms, see the LICENSE file.
🛡️ Security
For security concerns, please email founder@cryptopix.in instead of using the issue tracker.
📞 Support
- Sales Inquiries: founder@cryptopix.in
- Technical Support: founder@cryptopix.in
- Security Issues: founder@cryptopix.in
🎯 Roadmap
- Support for additional image formats (PNG, JPEG)
- Hardware acceleration for large files
- Integration with cloud storage providers
- Mobile SDK development
- Enterprise key management integration
Made with ❤️ by the CryptoPix Team
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 cryptopix-3.0.0.tar.gz.
File metadata
- Download URL: cryptopix-3.0.0.tar.gz
- Upload date:
- Size: 35.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3db6eaab1d90fd19b35d20aa9b4a511e074a44bf2845af0552c755322b0dd01
|
|
| MD5 |
0d78c77d3a3497a7584e6e8229680a2e
|
|
| BLAKE2b-256 |
99f85025ba7c93f37e3c92343e4acb278b43e35b5621001439c7b8e9002f2260
|
File details
Details for the file cryptopix-3.0.0-py3-none-any.whl.
File metadata
- Download URL: cryptopix-3.0.0-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a0ba75bed4bdd22106e417e26338b9f92753374fa6cc665009ec54751b2f7f9
|
|
| MD5 |
ad5a6e384b0f8ff9981c63e3d2d3dbde
|
|
| BLAKE2b-256 |
d85b7c9c40dedb817fcaa6bbbabf56c403589e0a7d17e47caf74efe0eff43a9e
|