Ciphey:下一代自动化密文/编码/Hash 识别与解密引擎深度解析

2026/06/08 sec Ciphey · 自动解密 · 密码学 · 密文识别 · 自然语言处理 · CTF · Rust 5268 字 · 约 16 分钟 阅读
Rust 实现的自动化解密引擎 Ciphey(21,000+ Stars),支持 23 种解码器、A* 搜索路径寻优、BERT 增强明文检测、多层级自动递归解密。无需知道密钥和加密算法,输入密文即可自动解密。

Ciphey:下一代自动化密文/编码/Hash 识别与解密引擎深度解析

项目概览

Ciphey 是一款自动化解密引擎——你输入一段不知道用了什么算法加密或编码的字符串,Ciphey 会自动尝试所有可能的解密路径,最终输出明文。

传统工具需要你知道数据是 Base64、Caesar 还是 AES,然后手动选择合适的工具。Ciphey 颠覆了这种模式:不需要知道密钥,不需要知道加密算法,只需要输入密文

指标数据
仓库https://github.com/bee-san/Ciphey
Stars21,442
Forks1,439
编程语言Rust
开源协议MIT
创建时间2019-07-16
当前版本v5.3.3
解码器数量23 种
单元测试120+

⚠️ 本文介绍的是下一代 ciphey(Rust 实现,仓库 bee-san/Ciphey),而非旧版 Ciphey(Python 实现,仓库 Ciphey/Ciphey)。新版本速度提升约 7 倍,支持多线程和更好的搜索算法。


一、核心架构与解码流水线

1.1 系统流程图

输入密文
    │
    ├─→ Level 1: 快速解码器(Base64 / Hex / URL 等)
    │      ↓
    ├─→ Level 2: 常规解码器(Caesar / Atbash / RO T47 / Binary 等)
    │      ↓
    ├─→ Level 3: 复杂解码器(Vigenere / 多项式替换 / 键盘密码等)
    │      ↓
    └─→ 明文检测器(BERT + 三字母/四字母频率 + 英语字典 + 500+ 正则规则)
           │
           ├─→ 匹配 → 反馈寻找到的路径给 A* 搜索
           │
           └─→ 不匹配 → A* 搜索选择下一个分支继续

1.2 A* 搜索驱动的解密路径寻优

Ciphey 的核心创新之一是使用 A* 搜索算法来指导解密路径选择,而非暴力遍历所有组合。其搜索策略包括:

  • 启发式评估:使用 cipher_identifier 估算当前字符串属于某种密文的概率
  • 快速解码器优先:对 Base64 等极快解码器忽略启发式,优先执行
  • 动态优先级:持续记录各解码器的历史成功率,动态调整优先级(如 Caesar 比 Beaufort 更常见,优先级更高)
  • 热门配对缓存:记录常见配对(如 Base64 → Base64 的嵌套非常常见),优先走这些路径
  • 路径缓存:缓存已计算过的解密路径,避免重复搜索
  • 搜索树剪枝:当搜索空间过大时剪枝,控制内存使用
  • 统计数据库:持久化存储解码器统计信息,持续优化长期表现

这种搜索策略意味着 Ciphey 的解密速度远快于暴力深度优先搜索——对于每 1 次旧版 Ciphey 的解密,新版本可以完成约 7 次。

1.3 三层明文检测体系

Ciphey 的明文检测系统是判断解密是否成功的关键,由三层构成:

检测层技术说明
统计层Quadgram / Trigram 频率 + 英语词典计算字符串的 n-gram 频率得分,判定是否像自然语言
规则层500+ 正则表达式识别 API Key、MAC 地址、IP 地址、Email 等结构化数据
AI 层(可选)BERT 模型(gibberish-or-not)准确率提升约 40%,需 Hugging Face 账户下载 500MB 模型

明文检测的灵敏度可根据解码器类型调整:Caesar 等古典密码使用 Low 灵敏度(结果必须”很像英语”),Base64 等编码使用 Medium 灵敏度。


二、支持的解密算法清单

Ciphey 当前内置 23 种解码器,覆盖编码、古典密码、现代密码和分析工具。以下是完整清单:

2.1 编码类

  • Base32 解码
  • Base58(Bitcoin 变体)解码
  • Base58(Flickr 变体)解码
  • Base58(Monero 变体)解码
  • Base58(Ripple 变体)解码
  • Base64 解码
  • Base91 解码
  • Base65536 解码
  • Hexadecimal(十六进制)解码
  • URL 编码解码
  • Z85 解码
  • Binary(二进制)解码
  • Braille(盲文)解码

2.2 古典密码类

  • Caesar 密码(凯撒密码)——移位替换密码,暴力穷举所有移位 + 频率分析
  • Atbash 密码——字母表反转替换密码
  • ROT47 密码——ASCII 可打印字符的 47 位循环移位
  • Railfence 密码(栅栏密码)——按锯齿形排列文字再按行读取
  • Vigenere 密码(维吉尼亚密码)——多表替换密码,使用最先进算法快速破解
  • Morse Code(摩斯电码)——点划编码的识别与解码
  • A1Z26 密码——字母替换为数字(A=1, B=2, … Z=26)
  • Subtitution(通用替换密码)——通用的单表替换密码破解

2.3 特殊类

  • Brainfuck 解释器——Brainfuck 语言的解释执行
  • Reverse(字符串反转)——字符串字符顺序反转
  • Citrix CTX1 解码——Citrix CTX1 编码的解码

2.4 搜索辅助

  • LemmeKnow 集成——Rust 重写的 PyWhat,快 33 倍,用于识别字符串类型(IP 地址、API Key、MAC 地址等)

2.5 已规划但尚未实现的算法

根据项目路线图,以下算法正在添加中(持续增长中):

  • Base85 / ASCII85 解码
  • Base62 解码
  • Base 系列更多变体
  • 更多古典密码

三、核心性能优势

3.1 速度对比

维度Ciphey(旧版 Python)ciphey(新版 Rust)
单次解密耗时基准 1x~0.14x(快 7 倍)
并行能力无(单线程)Rayon 多线程原生支持
启动延迟Python 解释器加载Rust 原生二进制即时启动
解码器识别依赖 AI 判断路径A* 搜索 + 动态优先级

3.2 多层级自动解密

Ciphey 支持多层级解码,即自动识别并处理嵌套编码。例如:

输入: "V2ViIEFwcGxpY2F0aW9u"
  → Base64 解码: "Web Application"(命中明文检测 → 停止)
输入: "Vm96IGV1IHF1ZSBhY2hvIG11aXRv"
  → Base64 解码: "Voz eu que acho muito"
  → 未命中英语检测(葡萄牙语)
  → Caesar 移位尝试 → 命中修复结果
输入: "3q2+7wHl4A=="
  → Base64 解码 → Hex 字节 → 非文本数据
  → 无明文命中

这种多层级递归解密的能力来源于 Ciphey 的时间限制机制——CLI 默认最多尝试 5 秒,Discord Bot 默认 10 秒,超时自动停止并报告失败。对比旧版 Ciphey 的”可能永远跑不完”问题,这是一个关键改进。

3.3 可配置的明文检测敏感度

不同的解码器对输出结果的明文检测使用不同的敏感度阈值:

敏感度适用场景说明
Low古典密码(Caesar 等)要求输出非常”像英语”
Medium大部分编码默认设置,平衡准确性

这一设计的合理性在于:Caesar 密码的解码结果应当是语法完整的英文句子,而 Base64 的解码结果可能是任意二进制数据。


四、应用场景

4.1 CTF(Capture The Flag)竞赛

CTF 中最常见的需求之一就是解析”不知道是什么的字符串”。Ciphey 可以将此类分析时间从分钟级缩短到秒级:

$ ciphey "ZmxhZ3tjaXBoZXJfcm9ja3N9"
→ flag{cipher_rocks}

典型的 CTF 题目中编码往往嵌套多层:Base64 → Hex → Caesar → ROT13 → 最终 Flag。Ciphey 自动完成全部路径解码。

4.2 渗透测试与红队

场景描述
配置文件解密从 Web 应用中提取的加密配置字符串,自动识别并解密
凭据提取从转储文件中提取编码/加密的凭据
数据泄露分析对泄露数据中的编码字段进行批量反解
Token 识别自动识别 JWT、API Key 等结构化认证数据

4.3 安全研究与逆向分析

场景描述
协议逆向分析未知二进制协议中的编码字段
恶意软件分析对恶意软件中的混淆字符串进行自动化反混淆
流量分析从网络流量日志中提取并解码异常编码的数据

4.4 数据恢复

场景描述
编码损坏恢复当只知道数据被编码但不确定具体编码方式时自动尝试
CSV/日志中的数据字段从结构化数据中提取并自动解码特定字段

4.5 开发调试

场景描述
API 响应调试自动识别并解码 Base64/Hex 编码的 API 响应字段
加密方案验证快速验证某段数据是否使用了特定编码/加密

五、部署方式

方式说明
Discord Bot加入 Discord 服务器,使用 $ciphey 命令。最简单的方式
Cargo 安装cargo install ciphey → 命令行 ciphey
Dockergit clonedocker build .docker run
CLI 直接运行安装后支持标准输入和参数输入

CLI 使用示例:

# 直接输入字符串
ciphey "ZmxhZ3tjaXBoZXJfcm9ja3N9"

# 从标准输入
echo "ZmxhZ3tjaXBoZXJfcm9ja3N9" | ciphey

# 从文件输入
ciphey --file encoded.txt

# 启用 AI 增强明文检测(首次需下载 500MB BERT 模型)
ciphey --enable-enhanced-detection

# 设置超时时间(秒)
ciphey --timeout 10 "ZmxhZ3tjaXBoZXJfcm9ja3N9"

六、优劣势分析

优势说明
全自动解密不需要知道算法和密钥,输入密文即得明文
Rust 原生实现比旧版 Python 实现快约 7 倍,二进制体积小,启动零延迟
A* 搜索寻优非暴力遍历,启发式 + 动态优先级 + 搜索树剪枝,效率高
BERT 增强明文检测可选 AI 模型,准确率提升约 40%
多线程原生支持基于 Rayon 库,随解码器增多可横向扩展
多层级自动解密支持嵌套编码的自动递归解码
500+ 正则规则可识别 API Key、IP、Email 等结构化数据
可配置超时防止无限运行
劣势说明
不解决现代加密AES、RSA 等强加密不在支持范围内,无法解密未知 Key 的对称加密
解码器覆盖有限当前 23 种解码器,相比 CyberChef 的 480+ 操作差距较大
BERT 模型较大500MB 模型需 Hugging Face 账户下载,非默认开启
对非英语文本支持有限明文检测器和 n-gram 频率基于英语,中文/日文等语言效果差
长文本解密变慢A* 搜索 + 多层级递归在长文本上耗时增长
二进制数据误报非文本二进制数据可能被误判为编码并尝试解密
注释和文档不完整部分解码器缺少详细的技术文档和使用说明

七、技术启示

Ciphey 代表了密文分析领域的范式转变:从”手动识别 → 手动选择工具”到”自动识别 + 自动解密的智能化流水线”

它背后的核心设计思路值得关注:

  1. 搜索策略比暴力更重要——用 A* 搜索 + 动态优先级代替深度优先遍历,是性能提升的关键
  2. 明文检测是解密的锚点——没有可靠的明文检测,解码路径就无法终止;三层检测体系(统计+规则+AI)的设计思路值得借鉴
  3. 解码器是独立可插拔的——每个解码器是一个独立模块,新增解码器的成本极低,生态可扩展
  4. 统计驱动优化——统计数据库记录了每个解码器的成功率,长期运行后解码路径选择越来越准

八、适合谁用

  • CTF 选手——秒级解码嵌套编码字符串,节省大量手动尝试时间
  • 渗透测试工程师——快速识别和解码配置文件、凭据中的编码数据
  • 安全研究人员——逆向分析中的自动辅助解码工具
  • 蓝队分析师——快速还原日志中编码的恶意 Payload
  • 任何频繁遇到”不知道是什么编码”的人——把数据扔给 Ciphey,让它自己猜

总结

Ciphey 是自动化密文分析领域的代表性工具。21,000+ Stars 的社区认可证明了它的价值:在安全分析中,”快速识别和解码未知格式的数据”是一个常见但极其耗时的步骤

Ciphey 用 Rust 重新实现后,速度提升了约 7 倍,A* 搜索算法让解密路径选择更加智能,BERT 增强后的明文检测将准确率提升了约 40%。虽然它不能解密已知密钥的强加密(AES/RSA),但在编码解码和古典密码的自动化处理领域,Ciphey 是目前最优秀的工具之一。

如果说 CyberChef 是”你需要知道用什么工具,然后手动编排 Recipe”,那么 Ciphey 就是”把密文扔进去,它会自己想办法”。两者搭配使用——Ciphey 做自动发现和初步解密,CyberChef 做深入的手工分析——覆盖了从自动到手动、从快速到精细的全场景密文分析需求。


项目地址

资源链接
GitHub 仓库https://github.com/bee-san/Ciphey
Discordhttp://discord.skerritt.blog
文档https://broadleaf-angora-7db.notion.site/Ciphey2-32d5eea5d38b40c5b95a9442b4425710
作者博客https://skerritt.blog/introducing-ciphey/
开源协议MIT

参考资料

  • GitHub 仓库:源代码、Issue、Milestones。→ https://github.com/bee-san/Ciphey
  • 作者博文:Ciphey 设计思路和架构介绍。→ https://skerritt.blog/introducing-ciphey/
  • LemmeKnow:Ciphey 集成的 Rust 版 PyWhat 识别引擎。→ https://github.com/swanandx/lemmeknow
  • Old Ciphey:Ciphey 的旧版 Python 实现。→ https://github.com/Ciphey/Ciphey

文档信息

加载评论…