Metadata-Version: 2.4
Name: sha67
Version: 0.1.2
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Security :: Cryptography
Summary: Premium SHA-67 Hashing Cryptographic Module in Rust
Requires-Python: >=3.7
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

# SHA-67 (six-seven)

Instead of SHA-256 or SHA-512, we got **SHA-67** (six-seven). 

It hashes your stuff into a 67-character string chosen from a custom 67-character alphabet. That's $67^{67}$ possible outcomes (which is a massive $\approx 406$ bits of cryptographic keyspace).

---

## 📥 How to Install

Just run:
```bash
pip install sha67
```

---

## 🐍 How to Use (Python)

### 1. Simple Hashing
Just import it and feed it any string or bytes. It returns a clean 67-character hash:
```python
import sha67

# Hashing a string
print(sha67.sha67("hello world"))
# => eSLqb0RhwPJUAp.aT~tyb-60eLTKDeWIpgkg4PQH9HPDim.Y03gSwfPLwzw-CfZjVcp
```

### 2. Hash as a Giant Number
If you want the hash represented as a large Python integer modulo $67^{67}$:
```python
print(sha67.sha67_int("hello world"))
```

### 3. Hashlib-style (Incremental)
If you want to feed data in chunks:
```python
hasher = sha67.SHA67()
hasher.update("hello ")
hasher.update("world")

print(hasher.base67digest())
```

---

## 🦀 How to Use (Rust CLI)

If you compile the binary with `cargo build --release`, you can use it directly in your terminal like `sha256sum`:

```bash
# Hash a text string
./target/release/sha67 -s "hello world"

# Hash a file
./target/release/sha67 some_file.txt

# Stream from standard input
echo -n "hello" | ./target/release/sha67
```

