3 releases
Uses new Rust 2024
| 0.1.5 | May 26, 2025 |
|---|---|
| 0.1.1 | May 26, 2025 |
| 0.1.0 | May 26, 2025 |
#1532 in Cryptography
8KB
85 lines
๐ FileEncryptor
A Basic and secure command-line tool to encrypt and decrypt files using libsodium via the sodiumoxide Rust crate.
โจ Features
- ๐ Password-based file encryption using
secretbox(XSalsa20 + Poly1305) - ๐ง Salted password hashing with
pwhash(Argon2) - ๐ Symmetric encryption & decryption
- โ Ergonomic CLI interface
- ๐งช 100% test coverage (including edge cases)
TODO
- [] Add secure password prompt (rpassword)
- [] Add optional config file support
- [] Add file overwrite confirmation
- [] Add streaming support for large files
๐ Installation
cargo install file_encryptor
๐ฆ Usage
Encrypt a file
file_encryptor -e -i plaintext.txt -o encrypted.bin -p "your_password"
Decrypt a file
file_encryptor -d -i encrypted.bin -o decrypted.txt -p "your_password"
Flags
Usage: file_encryptor [OPTIONS] --input <INPUT> --output <OUTPUT> --password <PASSWORD>
Options:
-i, --input <INPUT> Input file path
-o, --output <OUTPUT> Output file path
-p, --password <PASSWORD> Password for encryption/decryption
-e, --encrypt Encrypt the file
-d, --decrypt Decrypt the file
-h, --help Print help
-V, --version Print version
๐ Security
- Uses pwhash::derive_key (Argon2) with a random salt for each file.
- Authenticated encryption with secretbox (XSalsa20 + Poly1305).
- Salt and nonce are prepended to the ciphertext.
Never share your password. If you lose it, your data cannot be recovered.
๐ License
MIT ยฉ 2025 Milad
Dependencies
~19MB
~111K SLoC