Initial commit: DVT_RFSA v1.0.0

This commit is contained in:
dvs
2026-08-28 10:38:05 +08:00
commit d35eb8411a
4 changed files with 942 additions and 0 deletions
+123
View File
@@ -0,0 +1,123 @@
# 🔐 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 keypair
- `generate_x25519_keys()` — X25519 keypair
- `load_x25519_private_key(...)` / `load_x25519_public_key(...)`
### Data Encryption (text / bytes)
- `aes_encrypt` / `aes_decrypt`
- `encrypt_aes_rsa` / `decrypt_aes_rsa`
- `encrypt_aes_x25519` / `decrypt_aes_x25519`
- `encrypt_aes_rsa_with_password` / `decrypt_aes_rsa_with_password`
### File Encryption
- `encrypt_file_aes_rsa` / `decrypt_file_aes_rsa`
- `encrypt_file_aes_rsa_with_password` / `decrypt_file_aes_rsa_with_password`
- `encrypt_file_aes_x25519` / `decrypt_file_aes_x25519`
### Text Convenience
- `encrypt_text_aes_rsa` / `decrypt_text_aes_rsa`
- `encrypt_text_aes_rsa_with_password` / `decrypt_text_aes_rsa_with_password`
- `encrypt_text_aes_x25519` / `decrypt_text_aes_x25519`
### Metadata
- `add_security_info(...)` / `remove_security_info(...)`
---
## 🚀 Quick Start
### Prerequisites
```bash
pip install cryptography
```
### Example: Encrypt/Decrypt a File (AES + RSA)
```python
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
```python
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_log` with 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](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.