Metadata-Version: 2.4
Name: encrypt-and-decrypt
Version: 1.0.0
Summary: Every encoding and cipher from ~1500 BC to today (58 languages) behind one dead-simple syntax: Encode(Text='Hello', Language='caesar')
Author-email: Your Name <you@example.com>
License-Expression: MIT
Keywords: encryption,decryption,cipher,encoding,caesar,vigenere,morse,enigma,aes,rsa,chacha20,base64,cryptography,security,education,encode,decode
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Education
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: fast
Requires-Dist: cryptography>=3.0; extra == "fast"
Dynamic: license-file

# encrypt&decrypt

Every encoding and cipher from the first one (~1500 BC) to the present day —
**58 languages**, one dead-simple syntax, zero hard dependencies.

## Install

```bash
pip install encrypt-and-decrypt
```

Optional extra — real hardware-accelerated primitives for AES / Fernet /
3DES / ChaCha20 / RSA (otherwise a pure-Python fallback is used):

```bash
pip install "encrypt-and-decrypt[fast]"
```

Then:

```python
from encrypt_and_decrypt import Encode, Decrypt
```

## Usage

```python
from encrypt_and_decrypt import Encode, Decrypt

Encode(Text="Hello", Language="caesar")          # 'Khoor'
Decode("Khoor", Language="caesar")               # 'Hello'
Decrypt(Encode(Text="Hello", Language="base64")) # chained syntax works
Decrypt("Khoor")                                 # Language="" -> auto-detect
```

Optional parameters:

| Parameter   | Meaning                                                                    |
|-------------|----------------------------------------------------------------------------|
| `Text`      | input string (leave empty to read from `FilePath`)                         |
| `Language`  | any id from `list_languages()`; `""` on Decrypt = auto-detect              |
| `FilePath`  | read input from file (Text empty) / write result to file (Text given)      |
| `Key`       | key for keyed ciphers (Vigenere, AES, RSA, ...) - defaults are built in    |
| `Key2`      | second key (ADFGVX, Four-square, Nihilist)                                 |
| `Period`    | period for Bifid / Trifid (default 5)                                      |
| `Envelope`  | `True` -> self-describing output `<<<ED|lang|payload>>>`                   |

Aliases: `Encode` = `Encrypt`, `Decrypt` = `Decode`. Hashes (`md5`, `sha256`, ...)
are one-way and cannot be decrypted.

## Explore all 58 languages

```python
from encrypt_and_decrypt import usage, list_languages
usage()                 # printed cheat-sheet, grouped by era
list_languages()        # machine-readable catalogue
```

Eras covered: **Ancient** (Scytale, Caesar, Atbash, Polybius, Tap code) →
**Classical** (Vigenère, Beaufort, Autokey, Affine, Bacon, Nihilist, Rail Fence,
Playfair, Four-square, Hill, Bifid, Trifid, ADFGVX) → **Telegraph & Machine**
(Morse, Braille, Baudot, NATO, Enigma I) → **Digital Age** (Binary, Octal,
Decimal, Hex, Base32/58/64/85, Ascii85, URL, HTML, Unicode escapes,
Quoted-Printable, UUEncode) → **Novelty** (DNA, Emoji, Pig Latin, Leet) →
**Modern** (XOR, RC4, AES-256, Fernet, 3DES, ChaCha20-Poly1305, RSA) →
**Hashes** (CRC32, MD5, SHA-1/256/512, SHA-3, BLAKE2).

## Dependencies

None required. If the `cryptography` package is installed, AES / Fernet /
3DES / ChaCha20 / Poly1305 use real hardware-accelerated primitives;
otherwise a self-contained pure-Python fallback keeps everything working.
