explaingit

bee-san/ciphey

📈 Trending21,397RustAudience · developerComplexity · 3/5ActiveLicenseSetup · hard

TLDR

Automatic tool that decodes and decrypts scrambled text without knowing the cipher method in advance, using smart search and multi-layer decoding.

Mindmap

mindmap
  root((Ciphey))
    What it does
      Auto-decodes text
      Multi-layer peeling
      Identifies cipher type
    How it works
      A* search algorithm
      Parallel processing
      Language detection
    Use cases
      CTF competitions
      Security research
      Encoded data analysis
    Tech stack
      Rust language
      BERT model
      Discord bot
    Features
      16+ decoders
      Timeout protection
      Library API

Things people build with this

USE CASE 1

Solve Capture the Flag challenges by automatically decoding mystery strings to find hidden flags.

USE CASE 2

Decode multi-layer encoded data where text was scrambled multiple times in sequence.

USE CASE 3

Quickly identify and reverse common encodings like Base64, Rot13, and hex without manual trial-and-error.

USE CASE 4

Analyze suspicious or obfuscated text in security research and penetration testing.

Tech stack

RustBERTA* searchMultithreading

Getting it running

Difficulty · hard Time to first run · 1day+

Requires Rust compilation, BERT model download, and GPU/CUDA setup for inference performance.

Use freely for any purpose including commercial, as long as you keep the copyright notice.

In plain English

Ciphey is an automatic decoding and decryption tool, you hand it scrambled, encoded, or encrypted text and it figures out what was done to the text and reverses it, all without you needing to know the cipher or encoding method in advance. This is particularly useful in Capture the Flag (CTF) competitions, where participants are often given mysterious encoded strings and must decode them to find hidden flags. The tool works by using a search algorithm (A* search) that tries different decoding methods in a smart order rather than brute-forcing everything. It runs fast because it can quickly identify which encoding is most likely (Base64, Rot13, hex, and so on) using a cipher identification component, and it uses multithreading to run multiple attempts in parallel. It supports 16 decoders as of the README, with more being added. A notable feature is multi-level decoding: if text was encoded multiple times in sequence (for example, Base64 applied, then Rot13 applied on top of that), Ciphey can peel away each layer automatically. It also includes a timer so it does not run forever if the text cannot be decoded. For detecting whether the decoded output is real readable text (called plaintext), it uses a combination of English language statistical checks and an optional AI model based on BERT (a type of natural language model) for higher accuracy. Ciphey is written in Rust and can be installed with cargo install ciphey. It also runs as a Discord bot and is available as a library you can build on. The tool is aimed at security researchers, CTF players, and anyone who regularly deals with encoded data.

Copy-paste prompts

Prompt 1
I have a Base64-encoded string that might be Rot13'd on top. Use Ciphey to automatically decode it and tell me what the original text is.
Prompt 2
Show me how to install Ciphey with cargo and use it from the command line to decode this text: [paste your encoded text here].
Prompt 3
How do I use Ciphey as a library in my Rust project to decode unknown cipher types programmatically?
Prompt 4
Set up Ciphey as a Discord bot so my CTF team can decode strings by posting them in a channel.
Prompt 5
Explain how Ciphey's A* search algorithm decides which decoding method to try first instead of brute-forcing all 16 decoders.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.