
⚡ 鍵や暗号方式を知らなくても暗号を自動的に復号し、エンコーディングをデコードし、ハッシュを解析します ⚡
エンコードまたは暗号化されたテキストを貼り付けてください。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 倍高速です。この速度はどこから来るのでしょうか?
~/.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、CTF フラグなどです。
$ ciphey -t '3139322e3136382e302e31'
🕵️ I think the plaintext is Internet Protocol (IP) Address Version 4.
Possible plaintext: '192.168.0.1' (y/N):
▶ クリップを見る(14.5 秒)
答えの一部(フラグの形式、含まれていなければならない単語、先頭がどうなっているかなど)がわかっている場合は、-r で正規表現として Ciphey に渡します。他のチェッカーは無効になり、一致するテキストのみが受け入れられます。これにより、英語検出では見逃してしまう平文を見つけられます。Base64 でエンコードされた picoCTF{b4s3_64_1s_fun} はデフォルトでは意味不明な文字列として返されますが、-r 'picoCTF\{' を指定すると最初の一致となります。
--wordlist words.txt も同様に完全一致で機能します。ファイル内の行と一致する候補は平文として扱われます。