Hide Messages in Chess Games
Convert any text into a legally playable chess game. Play it anywhere — then decode the hidden message.
Convert any text into a legally playable chess game. Play it anywhere — then decode the hidden message.
Paste any PGN from Chess.com, Lichess, or any platform. Watch the game replay as the message is extracted.
Generate a reference card. Share only the pointer — the data lives on the chess platform.
Chess steganography — mathematically concealing information inside legally playable games.
Text is converted to binary. At each position, legal moves are sorted alphabetically (deterministic). k = floor(log₂(N)) bits are encoded by choosing move index. The game looks natural: pawn moves, development, castling, captures. Works cross-platform — import into Chess.com, Lichess, or any PGN viewer.
Compact data encoded into chess positions. Exactly 1 king per side, legal piece counts, no impossible structures. Capacity is dynamically determined. Used for key derivation, pointer data, or short mini-messages. Decodable from any valid FEN string.
Public: No key — direct
decode for anyone.
Key Mode:
XOR cipher with user password.
Hidden Key:
Key derived from FEN hash at a specific move. Never transmitted.
Both parties compute it from the game itself.
Wrong or missing key returns a plausible chess commentary message — never an error. Decoys are deterministic: hash(PGN + wrong_key) → same decoy every time. Three tiers: normal chess commentary (60%), mildly suspicious (30%), subtle troll (10%).
At each chess position with N legal moves: k = ⌊log₂(N)⌋ bits can be encoded by choosing a move index in [0, 2^k). This guarantees all chosen indices are valid moves. Moves are sorted by SAN notation to ensure identical ordering at encode and decode time. A 2-byte length prefix is prepended to the payload before bit-encoding, enabling exact message reconstruction regardless of trailing bits.