https://github.com/martian56/vigenc
This project extends the Vigenère cipher implementation to support file encryption and decryption. It provides a user-friendly command-line interface (CLI) for encrypting and decrypting files, with a progress bar to visualize the operation's progress. Built using Rust.
https://github.com/martian56/vigenc
cli enc encrypter-tool encryption-decryption file file-encryption file-encryption-rust rust
Last synced: 5 months ago
JSON representation
This project extends the Vigenère cipher implementation to support file encryption and decryption. It provides a user-friendly command-line interface (CLI) for encrypting and decrypting files, with a progress bar to visualize the operation's progress. Built using Rust.
- Host: GitHub
- URL: https://github.com/martian56/vigenc
- Owner: martian56
- Created: 2025-04-01T13:50:09.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-01T14:08:40.000Z (about 1 year ago)
- Last Synced: 2025-08-20T14:43:51.169Z (9 months ago)
- Topics: cli, enc, encrypter-tool, encryption-decryption, file, file-encryption, file-encryption-rust, rust
- Language: Rust
- Homepage:
- Size: 7.81 KB
- Stars: 7
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# File Encryption and Decryption using Vigenère Cipher
This project extends the Vigenère cipher implementation to support file encryption and decryption. It provides a command-line interface (CLI) for encrypting and decrypting files, with a progress bar to show the operation's progress.
## Features
- Encrypt files using the Vigenère cipher in ECB mode.
- Decrypt files using the Vigenère cipher in ECB mode.
- Command-line interface for easy usage.
- Progress bar to visualize the encryption/decryption process.
## Prerequisites
Ensure you have [Rust](https://www.rust-lang.org/tools/install) installed on your system.
## Installation
Clone the repository and navigate to the project directory:
```sh
git clone https://github.com/martian58/vigenc.git
cd vigenc
```
## Building the Project
To build the project, use the following command:
```sh
cargo build
```
For a release build, use:
```sh
cargo build --release
```
## Running the Project
### Command-Line Interface
The project provides a command-line interface for encrypting and decrypting files. The available options are:
- `--input` or `-i`: The input file to use (required).
- `--output` or `-o`: The output file to use (optional).
- `--key` or `-k`: The encryption/decryption key (optional, will prompt if not provided).
- `--decrypt` or `-d`: Decrypt the input file instead of encrypting.
### Example Usage
#### Encrypt and Overwrite the Input File
```sh
cargo run --bin vigenc -- --input input_file.txt
```
#### Encrypt and Create a New Output File
```sh
cargo run --bin vigenc -- --input input_file.txt --output output_file.txt
```
#### Decrypt and Overwrite the Input File
```sh
cargo run --bin vigenc -- --input encrypted_file.txt --decrypt
```
#### Decrypt and Create a New Output File
```sh
cargo run --bin vigenc -- --input encrypted_file.txt --output decrypted_file.txt --decrypt
```
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
## Contributing
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
## Contact
For any questions or inquiries, please contact [martian58](https://github.com/martian58).