An open API service indexing awesome lists of open source software.

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.

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).