Metadata-Version: 2.4
Name: xor-py
Version: 1.1
Summary: An easy way to use xor in python3
Home-page: https://github.com/0xsweat/xor
Download-URL: https://github.com/0xsweat/xor
Author: 0xsweat
Author-email: 0x.sweat@tutanota.com
License: MIT
Keywords: python,python xor,xor,encryption
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: download-url
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-python
Dynamic: summary

# 🔐 xor.py — Simple XOR Encryption Tool in Python

**Author:** 0xsweat  
**Date:** 2025/05/24

`xor.py` is a lightweight XOR encryption and decryption tool written in Python 3. It features a command-line interface (CLI) for encrypting/decrypting text or files and supports key generation. Ideal for basic data obfuscation, CTF utilities, or educational use.

---

## 📦 Installation

Install via PyPI:

```bash
pip install xor-py
```

Or clone directly from GitHub:

```bash
git clone https://github.com/0xsweat/xor
cd xor
python3 xor.py --help
```

---

## 🚀 CLI Usage

### 🔑 Generate a Key

Create a random key (default: 4096 bytes) and it saves it to `key.txt`:

```bash
python3 xor.py -g
```

Customize key size and output file:

```bash
python3 xor.py -g -ks 2048 -o mykey.txt
```

---

### 🔒 Encrypt or 🔓 Decrypt a File

```bash
python3 xor.py -f input.txt -k key.txt -o output.enc
```

This applies XOR encryption/decryption using the provided key file. The process is symmetric — use the same command to encrypt or decrypt.

---

### ✍️ Encrypt/Decrypt Raw Input

If no input file is given, you'll be prompted to enter the plaintext and key manually:

```bash
python3 xor.py
```

Example prompt:
(The asterik's are there for show, the actual program does not show anything during input.)
```
Text -> ********
Key -> ********
Output file -> result.txt
```

## 📚 Using as a Module

You can also import `xor.py` into other Python scripts:

```python
from xor import xor, keygen

# Generate a 1024-byte key
key = keygen("key.txt", 1024) # outputting the key to a file is optional

# Encrypt a string
encrypted = xor("Hello, world!", "key.txt", key_from_file=True) # grabbing the key from the file

# Decrypt it back
decrypted = xor(encrypted.decode(), key) # using the key from memory
print(decrypted.decode())  # Output: Hello, world!
```

---

## ⚠️ Disclaimer

While `xor.py` uses a simple XOR cipher that is not secure for protecting sensitive or personal data, it has several practical and educational applications. XOR encryption is **symmetric**, **lightweight**, and easy to implement, making it useful for:

- 🧠 Learning about basic encryption principles
- 🛠️ Building custom obfuscation tools
- 🧩 Capture The Flag (CTF) challenges
- 🐞 Debugging or modifying encoded data
- 🔁 Simple reversible transformations

However, it is **not suitable for real-world secure communications or storing confidential information**. For secure encryption, consider using industry-standard libraries such as `cryptography` or `PyNaCl`.

---

## 📄 License

MIT License
