📖 Book Cipher Kit
The cipher that needs no key — only a shared book.
"Anyone who has the book can read it. Anyone who doesn't, never will."
What is it?
A book cipher encodes each character of a message as a position inside the words of a book: (line, word, character). Without the same edition of the same book, the positions are meaningless — and there is no key to steal, no algorithm to break, no trace to find. It is the cipher of lovers, prisoners, and people who trust each other with a bookstore.
Features
- 🔡 Encode messages into
line.word.charposition triples - 📚 Decode them back with the same book
- 🎲 Optional seed for reproducible (or plausibly deniable) output
- 📊
stats— tells you what your book can and cannot encode - 🧾 Positions live in a plain text file — one triple per line, easy to hide
- 📦 Zero dependencies
Install
pip install book-cipher-kit
From source:
git clone https://github.com/AnonymoDGH/book-cipher-kit
cd book-cipher-kit
pip install -e .
Quickstart
# What can your book encode?
bookcipher stats --book novel.txt
# [*] Alphabet coverage: 98%
# [+] Found: abcdefghijklmnopqrstuvwxyz
# [-] Missing: q
# Encode
bookcipher encode --book novel.txt --message "meet at dawn" --out coords.txt
# The courier carries only this:
cat coords.txt
# 12.4.2
# 3.1.0
# 87.12.5
# ...
# Decode on the other side
bookcipher decode --book novel.txt --input coords.txt
# meet at dawn
CLI reference
| Command | What it does |
|---|---|
bookcipher encode --book <f> --message <m> [--out <f>] [--seed <n>] |
Message → positions |
bookcipher decode --book <f> --input <f> |
Positions → message |
bookcipher decode --book <f> --positions "1.0.2 2.3.0" |
Inline positions |
bookcipher stats --book <f> |
Alphabet coverage report |
How it works
Tests
pip install pytest
pytest
License
MIT — a fiction research prop. Share the book, keep the story.
Release files for book-cipher-kit 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| book_cipher_kit-0.1.0.tar.gz | 6.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| book_cipher_kit-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.2 kB
Release files / book_cipher_kit-0.1.0.tar.gz
| Download URL | book_cipher_kit-0.1.0.tar.gz |
|---|---|
| Size | 6.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a1d0da78789845ec6a247ef0b7a41063f42b786ec51399064310b735c74f600e
|
|
BLAKE2b-256 checksum How to use checksums |
a046b2ba21fa8f2ef726b01e82a7fb025289f9e3a9d7a9b570e3f0fa76fab228
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|
Release files / book_cipher_kit-0.1.0-py3-none-any.whl
| Download URL | book_cipher_kit-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
869d6b3a0ee5b77decc818c424df033ba5aa51c071c8d3e7c901c0f966702e63
|
|
BLAKE2b-256 checksum How to use checksums |
c36bc6f76b6563f63da186dc6133a35863878f9d07d4441eeb6f1f0de7d4ec92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.3
|