Enterprise Cryptography Made Simple
A comprehensive cryptographic toolkit with secure defaults for Python applications. Built with production-grade security and framework integrations.
Modern cryptography with secure defaults and production readiness
Argon2id password hashing with automatic parameter calibration and timing-attack protection
ChaCha20-Poly1305 AEAD encryption with XChaCha20 nonces and additional authenticated data
Ed25519 for fast, secure signing and verification with small signature sizes
Multi-cloud KMS support with secure key derivation and automatic rotation
Start securing your applications with zero configuration
pip install securekit
from securekit.crypto.password import hash_password, verify_password
# Hash a password
hashed = hash_password('MySecurePassword123!')
# Returns: '$argon2id$v=19$m=65536,t=3,p=2$...'
# Verify a password
is_valid = verify_password('MySecurePassword123!', hashed)
# Returns: True
from securekit.crypto.aead import aead_encrypt, aead_decrypt
import os
# Generate a key (use KMS in production)
key = os.urandom(32)
# Encrypt data
plaintext = b'Sensitive user data'
aad = b'user_12345' # Additional authenticated data
ciphertext = aead_encrypt(key, plaintext, aad)
# Decrypt and verify
decrypted = aead_decrypt(key, ciphertext, aad)
# Returns: b'Sensitive user data'
Seamlessly integrate security into your favorite frameworks
from flask import Flask
from securekit.adapters.flask import register_securekit
from securekit.kms.aws import AWSKeyManager
app = Flask(__name__)
key_manager = AWSKeyManager(region='us-east-1')
register_securekit(app, key_manager)
@app.route('/secure-data')
@encrypt_fields(['email', 'ssn'])
def get_secure_data():
return {'email': 'user@example.com',
'ssn': '123-45-6789'}
# settings.py
SECUREKIT_KEY_MANAGER = AWSKeyManager(region='us-east-1')
# models.py
from securekit.adapters.django import EncryptedField
class UserProfile(models.Model):
social_security = EncryptedField(max_length=255)
medical_data = EncryptedField(max_length=1024)
from fastapi import FastAPI, Depends
from securekit.adapters.fastapi import securekit_dependency
app = FastAPI()
@app.get("/secure-data")
@encrypt_response(['sensitive_field'])
async def get_secure_data(securekit = Depends()):
return {'sensitive_field': 'confidential_data'}
Built with security best practices and comprehensive threat modeling
Safe configurations out of the box with no insecure options
Timing-attack resistant comparisons and operations
Secure memory handling with zeroing when possible
AWS KMS, HashiCorp Vault, and Azure Key Vault support
Automated key rotation with zero downtime
56/56 tests passing with 100% security audit
Built for developers who value security and reliability
Comprehensive security audit with no known vulnerabilities
Battle-tested in enterprise environments with 56/56 tests passing
Seamless integration with Flask, Django, and FastAPI
Join developers who trust SecureKit for their cryptographic needs
Get help with SecureKit
🔒 Hi! I'm your SecureKit security assistant. I can help you with cryptography questions, implementation examples, or security best practices. What would you like to know?
Using OpenRouter AI