3.5 KiB
3.5 KiB
🔐 DVT_RFSA — Hybrid Encryption Library
A robust hybrid encryption library combining RSA + X25519 + AES-256-GCM for text & file encryption, with optional password protection.
DVT_RFSA is a Python cryptography library that implements hybrid encryption schemes:
- AES-256-GCM for data encryption
- RSA-2048 and X25519 (ECDH) for key exchange
- Optional password-derived key protection (PBKDF2/HKDF)
- Support for encrypting text, files, and binary data
- Includes security metadata (algorithm, key info) for interchange
✨ Encryption Schemes
| Scheme | Description |
|---|---|
| AES + RSA | Hybrid: AES-256-GCM session key wrapped with RSA-2048 public key |
| AES + X25519 | Hybrid: AES-256-GCM session key via X25519 ECDH key exchange |
| AES + RSA + Password | Above + password-derived key layered encryption |
| Pure AES | Direct AES-256-GCM with generated/password-derived key |
🔌 Core Functions
Hashing & Key Tools
compute_data_hash(data, algorithm='sha256')/verify_data_hash(...)generate_aes_key()/derive_key_from_password(...)is_password_strong(...)/generate_strong_password(...)
Key Generation
generate_rsa_key()— RSA-2048 keypairgenerate_x25519_keys()— X25519 keypairload_x25519_private_key(...)/load_x25519_public_key(...)
Data Encryption (text / bytes)
aes_encrypt/aes_decryptencrypt_aes_rsa/decrypt_aes_rsaencrypt_aes_x25519/decrypt_aes_x25519encrypt_aes_rsa_with_password/decrypt_aes_rsa_with_password
File Encryption
encrypt_file_aes_rsa/decrypt_file_aes_rsaencrypt_file_aes_rsa_with_password/decrypt_file_aes_rsa_with_passwordencrypt_file_aes_x25519/decrypt_file_aes_x25519
Text Convenience
encrypt_text_aes_rsa/decrypt_text_aes_rsaencrypt_text_aes_rsa_with_password/decrypt_text_aes_rsa_with_passwordencrypt_text_aes_x25519/decrypt_text_aes_x25519
Metadata
add_security_info(...)/remove_security_info(...)
🚀 Quick Start
Prerequisites
pip install cryptography
Example: Encrypt/Decrypt a File (AES + RSA)
import DVT_RFSA as rf
# Generate RSA keys
keys = rf.generate_rsa_key()
# Encrypt a file
rf.encrypt_file_aes_rsa("secret.txt", "secret.txt.enc", keys["public"])
# Decrypt the file
rf.decrypt_file_aes_rsa("secret.txt.enc", "secret_decrypted.txt", keys["private"])
Example: Text Encryption with Password
import DVT_RFSA as rf
password = rf.generate_strong_password()
enc = rf.encrypt_text_aes_rsa_with_password("Hello, world!", password)
dec = rf.decrypt_text_aes_rsa_with_password(enc, password)
print(dec) # Hello, world!
🛡️ Features
- Authenticated encryption (AES-256-GCM) — detects tampering
- Hybrid key exchange — RSA & X25519 (ECDH)
- Password protection — key derivation & layered encryption
- File & text support — encrypt whole files or strings
- Portable output — encrypted data carries security metadata
- Debug logging — optional
crypto_logwith timestamp
📁 Project Structure
dvt-rfsa/
├── DVT_RFSA.py # Hybrid encryption library
└── README.md # This document
📄 License
This project is licensed under the MIT License. See LICENSE for details.
⚠️ Security Note
This library is for learning and reference. For production, ensure secure key storage, use strong passwords, and review the cryptographic implementation carefully.