Ein CLI-Tool in Rust zur Verschlüsselung, Entschlüsselung und Hash-Berechnung von Texten oder Dateien. Unterstützt AES-256-GCM und Hash-Algorithmen wie SHA-256 und SHA-512.
- 🔐 Verschlüsselung mit AES-256-GCM (inkl. Salt & Nonce)
- 🔓 Entschlüsselung über Passwort, Salt und Nonce
- #️⃣ Hashing mit SHA-256 oder SHA-512
- 📄 Eingabe als Text oder Datei
- 🧾 Ausgabe als Datei oder Standardausgabe
cargo build --release./crypto_tool encrypt --algorithm aes256-gcm --password <PASSWORT> --text "Hallo Welt" --output encrypted.txt./crypto_tool decrypt --algorithm aes256-gcm --password <PASSWORT> --file encrypted.txt --salt <BASE64_SALT> --nonce <BASE64_NONCE> --output decrypted.txt./crypto_tool hash --algorithm sha256 --text "Hallo Welt"Das Tool besteht aus folgenden Modulen:
cli_input: CLI-Definition mitclapcryption_service: AES-Verschlüsselung/-Entschlüsselunghash_service: SHA256/SHA512 Hashingfile_service: Datei-Handling (lesen/schreiben)helper: Fehlerformatierung
Für die Verschlüsselung wird der Schlüssel mittels Argon2 aus dem Passwort und einem zufällig generierten Salt abgeleitet.
let key = derive_key_from_password(password, &salt)?;clap: CLI Argument Parsingaes-gcm: Authenticated Encryptionargon2: Passwortbasierte Schlüsselableitungsha2: Hashing-Algorithmenbase64: Codierung von Salt/NONCE/Ciphertextrand: Sichere Zufallsgenerierung
Salt: "f2l0mDnd8QkPl5EJoQyYAA"
Ciphertext: <BASE64_VERSCHLÜSSELTER_TEXT>
Nonce: <BASE64_NONCE>
- Entschlüsselung funktioniert nur mit dem exakten Salt und Nonce.
- Entweder
--textoder--filemuss angegeben werden, nie beides.
./crypto_tool encrypt --algorithm aes256-gcm --password geheim --text "Vertraulich" --output secret.txt./crypto_tool decrypt --algorithm aes256-gcm --password geheim --file secret.txt --salt <SALT> --nonce <NONCE>MIT License