MareArts Crystal - High-performance encryption library

MareArts Crystal - High-performance encryption library

PyPI Python versions Downloads License

Python encryption library for software licensing and data protection. Simple, fast, and cross-platform.

🎯 Core Features

  • Software Licensing - Generate and validate time-limited license keys with signatures
  • File Encryption - Protect any file type with filename-based encryption
  • Data Security - Encrypt strings, configs, and binary data with one line of code

💡 Why MareArts Crystal?

  • Simple - Just pip install marearts-crystal and start coding
  • Fast - Cython-compiled for C++ performance
  • Compatible - Python 3.9-3.12, Windows/macOS/Linux
  • Proven - Used in production by real businesses

🚀 Installation

pip install marearts-crystal

Requirements: Python 3.9-3.12, Windows/macOS/Linux

Quick Start

License Key Generation

from marearts_crystal import ma_crystal

mask = ma_crystal("your-company-secret")

# Generate license key with signature
today = mask.get_today_date()  # "2025-09-12"
expire = mask.generate_end_date(years=1)  # "2026-09-12"
license_key, signature = mask.generate_serial_key("customer@email.com", today, expire)

print(f"License Key: {license_key}")
# Output: License Key: MAEV2:gAAAAABow91CXuG7dJR3eAWpEXj67RP-qboPAHiDGpVfd2dGN5yBXp...

print(f"Signature: {signature}")
# Output: Signature: a21521da5beb6d7c

# Validate license
result = mask.validate_serial_key("customer@email.com", license_key)
if result:
    start_date, end_date, signature = result
    # start_date = "2025-09-12", end_date = "2026-09-12", signature = "a21521da5beb6d7c"
    if mask.validate_date(start_date, end_date):
        print(f"✅ License active until {end_date}")
        # Output: ✅ License active until 2026-09-12
# Using signature for tracking
license_db = {}  # Your database

# Store license with signature
license_key, signature = mask.generate_serial_key("user@email.com", today, expire)
license_db[signature] = {
    "email": "user@email.com",
    "key": license_key,
    "created": today
}

# Later, verify and track
result = mask.validate_serial_key("user@email.com", license_key)
if result:
    start, end, sig = result
    print(f"License {sig} is valid")  # Use signature as ID

File Encryption

# Encrypt file
with open("document.pdf", "rb") as f:
    file_data = f.read()  # Read original file (e.g., 241979 bytes)

encrypted = mask.encrypt_data(file_data)
print(f"Encrypted size: {len(encrypted)} bytes")
# Output: Encrypted size: 322724 bytes

with open("document.pdf.enc", "wb") as f:
    f.write(encrypted)

# Decrypt file
with open("document.pdf.enc", "rb") as f:
    encrypted_data = f.read()

decrypted = mask.decrypt_data(encrypted_data)
print(f"Decrypted size: {len(decrypted)} bytes")
# Output: Decrypted size: 241979 bytes (matches original)

with open("document_decrypted.pdf", "wb") as f:
    f.write(decrypted)
print("✅ File successfully decrypted")
# Output: ✅ File successfully decrypted

More Examples

Python Examples (View on GitHub)

  • License key generation and validation
  • File encryption/decryption
  • Config file encryption
  • License manager class implementation
  • Password vault implementation
  • All API methods demonstration

Jupyter Notebook (Interactive Tutorial)

  • Interactive step-by-step tutorial
  • Visual output of each operation
  • Real-time testing environment

API Reference

Basic Methods

Method Description Example
generate_serial_key(username, start_date, end_date) Generate a license key with signature key, signature = mask.generate_serial_key("user", "2025-09-10", "2025-12-31")
validate_serial_key(username, serial_key) Validate a license key result = mask.validate_serial_key("user", key) # Returns (start_date, end_date, signature)
encrypt_string(text) Encrypt text encrypted = mask.encrypt_string("secret")
decrypt_string(encrypted) Decrypt text text = mask.decrypt_string(encrypted)
encrypt_data(bytes) Encrypt binary data encrypted = mask.encrypt_data(b"data")
decrypt_data(encrypted) Decrypt binary data data = mask.decrypt_data(encrypted)

Utility Methods

Method Description Example
get_today_date() Get today's date (YYYY-MM-DD) today = mask.get_today_date()
generate_end_date(years, months, days) Calculate future date expire = mask.generate_end_date(years=1)
validate_date(start, end) Check if current date is in range valid = mask.validate_date("2025-09-10", "2025-12-31")
is_v2_serial_key(key) Check if key uses V2 format is_v2 = mask.is_v2_serial_key(key)
is_v2_data(data) Check if data uses V2 encryption is_v2 = mask.is_v2_data(data)
string_to_secret_key(input_string) Derive key from string key = mask.string_to_secret_key("password")
secret_key_to_string(secret_key, encrypted) Decrypt with provided key text = mask.secret_key_to_string(key, encrypted)

🔗 MareArts AI Package Family

MareArts Crystal is part of our comprehensive AI and utility package ecosystem:

Package Description Use Case
marearts-anpr 🚗 License Plate Recognition Vehicle identification, parking systems, traffic monitoring
marearts-road-objects 🛣️ Road Object Detection Traffic analysis, smart city applications, safety systems
marearts-crystal 🔐 Encryption & Licensing Software licensing, data security, key management
marearts-xcolor 🎨 High-performance color extraction Color detection apps, dominant color query systems

📄 License

MIT License - Free for commercial and personal use.

Free to use on github
https://github.com/MareArts/marearts-crystal

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.