
Ciphey v0.12.1
⚡ 鍵や暗号方式を知らなくても暗号を自動的に復号し、エンコーディングをデコードし、ハッシュを解析します ⚡
Ciphey
エンコードまたは暗号化されたテキストを貼り付けてください。Cipheyがその方法を解明し、平文を返します。
鍵も、暗号名も、ヒントも不要。Base64、hex、Caesar/ROT13、Vigenère、モールス信号など計23種類を、複数層にわたって処理します。
インストール ·
クイックスタート ·
機能 ·
ライブラリ ·
MCP ·
ドキュメント ·
Discord
▶ 1分間のツアーを見る(MP4、61秒)
インストール
cargo install ciphey
Linux(x86_64)、macOS(Intel および Apple silicon)、Windows(x86_64)向けのビルド済みバイナリはリリースページにあり、それぞれ .sha256 チェックサムが付属しています。
ソースからビルドするには、Rust ツールチェーンが必要です:
git clone https://github.com/bee-san/Ciphey
cd Ciphey
cargo build --release # the binary is target/release/ciphey
またはインストールをスキップするには、Discordサーバーに参加し、#bots に移動して $ciphey <your text> と入力します($help でコマンド一覧を表示できます)。
クイックスタート
$ ciphey -t 'aGVsbG8gdGhlcmUgZ2VuZXJhbA=='
🕵️ I think the plaintext is Words.
Possible plaintext: 'hello there general' (y/N):
y
🥳 ciphey has decoded 64 times.
The plaintext is:
hello there general
the decoder used is Base64
初回実行時に、カラーテーマ、結果の表示方法、ワードリストを使用するかどうかを尋ねる短いセットアップが行われ、回答は ~/.ciphey/config.toml に保存されます。
ciphey -t 'NTA3NjYzNzU3MjZjMjA3NjY2MjA2OTcyNjU2YzIwNzM2ZTY2Njc=' # ROT13 → hex → Base64, nothing else needed
ciphey -f secret.txt # read the input from a file
ciphey -d -t '...' # no y/N prompt: take the first plaintext found (handy in scripts)
ciphey -c 15 -t '...' # keep searching for up to 15 seconds (the default is 5)
ciphey -r 'flag\{' -t '...' # only accept plaintext that matches a regex (a crib)
ciphey --wordlist words.txt -t '...' # also accept any exact match from a wordlist
ciphey --help はすべてのオプションを一覧表示します。
機能
⚡ 高速
▶ クリップを見る(16 秒)
3 つの層(ROT13、次に hex、次に Base64)が 0.16 秒で剥がれます。実際の録画で bash の time により計測された値です。以下は、Ciphey が置き換えるバージョンである Python Ciphey 5.14 との、より多くの入力に対する同じ比較です:
| 入力 | Ciphey | Python Ciphey 5.14 |
|---|---|---|
| Base64 | 0.11 秒 | 0.92 秒 |
| Hex → Base64 | 0.14 秒 | 1.02 秒 |
| ROT13 → Hex → Base64 | 0.19 秒 | 60 秒以内に答えなし |
| URL → Base64 → Hex | 0.24 秒 | 1.15 秒 |
| Base64 ×4 | 0.41 秒 | 0.78 秒 |
| Hex → Base32 → Base64 → Hex | 0.54 秒 | 0.72 秒、誤った答え |
| ROT13 → Hex → Base64 → Base32 | 1.15 秒 | 60 秒以内に答えなし |
共有の 16 CPU Linux マシン上で、入力ごとに 10 回実行(Python Ciphey は 3 回)した実時間の中央値。Ciphey は 47bd16d6 で、y/N プロンプトをオフにし、キャッシュが効かないよう実行ごとに新しい $HOME を使用。すべての実行は 60 秒で打ち切られた。スクリプトと生の数値は media/readme-videos ブランチの media/tui-video/bench にある。
両方が正しい答えを出す場合、Ciphey は 1.9 倍から 8.6 倍高速です。この速度はどこから来るのでしょうか?
- Rust 製です。
- A* 探索により、最も有望なデコーダーの連鎖を最初に試します。
- すべてのデコーダーは Rayon と並列に実行され、最大 10 個の候補テキストを同時に処理します。
- 答えは
~/.ciphey/database.sqliteにキャッシュされるため、同じ入力の 2 回目はミリ秒で返ります。
🧅 層を重ねても、鍵は不要
Ciphey は、何を見ているのかを教えてもらう必要がありません。デコーダーの連鎖(ROT13 の中の hex の中の Base64、4 層の Base64 など)を探索し、平文らしく見える最初の候補で停止します。デフォルトではその候補を表示し、受け入れる前に確認を求めます(-d でこれをオフにできます)。このページ冒頭のクリップは 4 層のデコードを示しています。
タイマーもあり、Ciphey が 5 秒経っても何も見つけられなければ、停止してその旨を伝えます(-c で制限を変更できます)。
24 個のデコーダーとクラッカーを認識します:
| 種類 | デコーダー |
|---|---|
| Base エンコーディング | Base64(標準および URL セーフ)、Base32、Base58(Bitcoin、Flickr、Monero、Ripple)、Base91、Base65536、Z85 |
| その他のエンコーディング | 16 進数、2 進数、URL(パーセントエンコーディング)、モールス信号、点字、A1Z26、Citrix CTX1 |
| 暗号 | Caesar(ROT13 を含む)、ROT47、Atbash、Vigenère(鍵自体を解読します)、レールフェンス、反転テキスト |
| 変わり種 | Brainfuck(プログラムを実行します)、他の記号で書かれたモールス信号や 2 進数 |
さらに追加予定です:#1030 で、まだ含まれていない 109 個のデコーダーが追跡されています。
🕵️ 見つけたものを理解する
▶ クリップを見る(21秒)
すべての候補平文は、pyWhat の Rust 移植版である LemmeKnow も通過します。これは120以上のフォーマットを認識します。つまり Ciphey は単に文字列をデコードするだけでなく、それが何であるかを教えてくれます。mount や sshpass コマンド内のパスワード、TOTP シークレット、GitHub トークンや Stripe キー、IP アドレスや MAC アドレス、メールアドレスや URL、暗号資産ウォレット、AWS ARN、JSON、あるいは任意の形式の CTF フラグ(flag{…}、picoCTF{…}、DUCTF{…})などです。文字列に含まれる文字の種類と長さだけをチェックする LemmeKnow のパターン(例えばカード番号や電話番号)は無視されます。デコーダーのジャンクが常にそれらにマッチしてしまうからです。
$ ciphey -t '3139322e3136382e302e31'
🕵️ I think the plaintext is Internet Protocol (IP) Address Version 4.
Possible plaintext: '192.168.0.1' (y/N):
🎯 Crib と正規表現モード
▶ クリップを見る(14.5 秒)



