/ README.md
README.md
 1  # OTPninja File Encryption Tool
 2  
 3  ## Overview
 4  
 5  OTPninja is a professional-grade file encryption and decryption tool built in Rust, leveraging the **One-Time Pad (OTP)** encryption technique. This tool provides a secure and efficient way to encrypt and decrypt files using XOR operations with a randomly generated OTP. The OTP ensures perfect secrecy when used correctly, making this tool ideal for scenarios where data confidentiality is paramount.
 6  
 7  The tool is designed with simplicity and security in mind, offering the following features:
 8  - **OTP Generation**: Generate a cryptographically secure OTP tailored to the size of your input file.
 9  - **File Encryption**: Encrypt files using the generated OTP.
10  - **File Decryption**: Decrypt files using the same OTP, ensuring data integrity and confidentiality.
11  - **Secure Memory Handling**: Utilizes the `zeroize` crate to securely handle sensitive data in memory, preventing residual data exposure.
12  
13  ![GUI and QR code Image](images/otp.jpg)
14  
15  ---
16  
17  ## Table of Contents
18  
19  1. [Features](#features)
20  2. [Prerequisites](#prerequisites)
21  3. [Installation](#installation)
22  4. [Usage](#usage)
23     - [Generating an OTP](#generating-an-otp)
24     - [Encrypting a File](#encrypting-a-file)
25     - [Decrypting a File](#decrypting-a-file)
26  5. [Security Considerations](#security-considerations)
27  6. [Contributing](#contributing)
28  7. [License](#license)
29  
30  ---
31  
32  ## Features
33  
34  - **Cryptographically Secure OTP Generation**: Uses `rand::rngs::OsRng` to generate high-quality random bytes for the OTP.
35  - **Perfect Secrecy**: Ensures that the encrypted data cannot be decrypted without the exact OTP.
36  - **Zeroization of Sensitive Data**: Automatically clears sensitive data (e.g., OTP) from memory after use to prevent accidental exposure.
37  - **Cross-Platform Compatibility**: Built in Rust, ensuring portability and performance across different operating systems.
38  - **User-Friendly CLI Interface**: Provides an intuitive command-line interface for generating OTPs, encrypting, and decrypting files.
39  
40  ---
41  
42  ## Prerequisites
43  
44  Before using OTPninja, ensure you have the following installed on your system:
45  
46  1. **Rust Programming Language**: Install Rust by following the instructions at [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install).
47  2. **Cargo Package Manager**: Comes bundled with Rust installation.
48  3. **Basic Knowledge of Command-Line Interfaces**: Familiarity with terminal commands is recommended.
49  
50  ---
51  
52  ## Installation
53  
54  1. Clone the repository:
55     ```bash
56     git clone https://github.com/your-repo/otp-ninja.git
57     cd otp-ninja
58  ```
59  
60  ## No Licensing Restrictions
61  
62  This tool is provided without any licensing restrictions. You are free to use, modify, and distribute it as you see fit.
63  
64  ---
65  
66  
67  ## Contact
68  
69  For encrypted email correspondence, please refer to the file public-key.asc.
70  
71  ## Official Website
72  
73  https://enkryp.duckdns.org
74  
75  ## e-mail
76  
77  battosai@dnmx.su
78  
79  ## LXMF Address 
80  
81  1b634f9ac2aee34bec3276ad17f52d11
82  
83  An LXMF address is a unique identifier used for secure communication over the LXMF protocol, enabling users to send and receive encrypted messages. I suggest using the Sideband app or Nomad Network for this purpose.
84  
85  ## Briar
86  
87  To connect via Briar, please first add me using the link provided, and then send your Briar link to my email. I will promptly add you to my trusted contacts.
88  
89  briar://ac4jkk7rqcb7vbvjudzvoav64lcypoo3qaj3b5wnndcvvsdpz3fvs
90  
91  
92  
93