Skip to main content

Secure text-to-image encryption library using advanced cryptographic techniques

Project description

CryptoPix - Commercial Text-to-Image Encryption Library

CryptoPix Logo Python Version License

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 encrypt
  • password: User-provided password
  • width: 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 object
  • smart_key: Smart key from encryption process
  • password: Same password used for encryption

Returns: Dictionary with 'content', 'type', and 'success' keys

Exception Classes

  • CryptoPixError: Base exception for all CryptoPix errors
  • EncryptionError: Raised when encryption fails
  • DecryptionError: Raised when decryption fails
  • InvalidPasswordError: Raised when password is incorrect
  • InvalidKeyError: Raised when smart key is invalid
  • UnsupportedFormatError: 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

  1. Contact Sales: Email licensing@cryptopix.com
  2. Specify Requirements: Development team size, expected usage
  3. Receive Quote: Custom pricing based on your needs
  4. 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 security@cryptopix.com instead of using the issue tracker.

📞 Support

🎯 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cryptopix-3.0.1.tar.gz (41.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cryptopix-3.0.1-py3-none-any.whl (27.5 kB view details)

Uploaded Python 3

File details

Details for the file cryptopix-3.0.1.tar.gz.

File metadata

  • Download URL: cryptopix-3.0.1.tar.gz
  • Upload date:
  • Size: 41.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for cryptopix-3.0.1.tar.gz
Algorithm Hash digest
SHA256 811fdde76de0048d0a12bd37ad5fd191ec8f55103a6b0ea2bd99d1c4c3a079a6
MD5 09d75411560c527baad4cad844a8e7d1
BLAKE2b-256 ce11e42a1f76cf82bb17ba63bbf14afa471eeec3d4dab45ba17bb13c1c6a3423

See more details on using hashes here.

File details

Details for the file cryptopix-3.0.1-py3-none-any.whl.

File metadata

  • Download URL: cryptopix-3.0.1-py3-none-any.whl
  • Upload date:
  • Size: 27.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for cryptopix-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4da9fa0a6524f52342348c66c5958bf14f001acc55ae36c5a52d6c7fce453b33
MD5 9e0a982ed72f23fc3fcb4872c502e6ec
BLAKE2b-256 fb4bffd38456b80fab302a82b8c3db171c4a3d5cb3f51351a9ca87692800aa90

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page