CyberChef:互联网从业者和密码朋克的必备日常工具
-
CyberChef:互联网从业者和密码朋克的必备日常工具
目录在网络安全、数据分析或简单的开发工作中,我们经常需要处理各种编码转换、加密解密或格式化任务。如果你厌倦了在几十个在线转换工具之间来回切换,那么由英国政府通讯总部(GCHQ)开发的 CyberChef 绝对是你不可错过的利器。它被誉为网络界的"瑞士军刀",能够通过直观的"拖拽式"操作,处理几乎所有你能想到的数据转换任务。
无论你是需要解码一段 Base64 字符串的初级运维人员,还是正在分析一段经过多层混淆的恶意 PowerShell 脚本的高级安全分析师,CyberChef 都能让你在同一个界面中一站式完成工作——不需要安装任何软件,不需要编写一行代码,甚至不需要联网。
什么是 CyberChef
CyberChef 是一个简单的、直观的 Web 应用程序,旨在让计算机浏览器能够执行各种"网络"操作。这些操作包括简单的编码(如 Base64 或十六进制)、复杂的加密(如 AES 或 RSA)、数据压缩、解压缩以及解析日志和网络流量。
CyberChef 于 2016 年由 GCHQ 在 GitHub 上以 Apache 2.0 开源许可证正式开源,其代码受英国皇家版权(Crown Copyright)保护。项目自开源以来保持活跃开发状态,截至 2025 年 2 月,最新稳定版本为 v10.22.1。该项目在 GitHub 上已积累超过 30,000 颗 Star,是安全社区最受欢迎的开源工具之一。
其核心理念是 "食谱"(Recipe):你可以像在厨房做菜一样,将不同的"操作"(Operations)按顺序组合在一起,原始数据经过这一系列工序后,最终输出你想要的结果。
这种"食谱"式的链式处理思想,是 CyberChef 区别于其他在线转换工具的核心优势。传统的在线工具通常只能执行单一功能——你需要先在工具 A 中做 Base64 解码,复制结果到工具 B 中做 Hex 转换,再复制到工具 C 中做解压缩。而在 CyberChef 中,你只需将这三个操作依次拖入"配方区",数据就会像流水线一样自动经过每一道工序,最终产出结果。
核心功能亮点
极度丰富的操作库
CyberChef 拥有超过 400 种内置操作,涵盖了以下领域:
📌 编码/解码:Base64, Hex, URL, Morse code, Unicode, Punycode, Quoted-Printable, Braille 等。
🔐 加密/解密:AES, DES, 3DES, Blowfish, RSA, RC4, ChaCha20, XOR 等主流算法。
📄 数据格式化:JSON, XML, HTML, SQL 的美化与压缩,以及 YAML ↔ JSON 双向转换(v10.20.0 新增)。
🔢 哈希运算:MD5, SHA-1, SHA-256, Bcrypt, SHA-512, HMAC, CRC-32, RIPEMD-160, Whirlpool, SSDEEP(模糊哈希) 等。v10.20.0 版本还新增了
GenerateAllChecksums操作,将校验和计算从哈希操作中独立出来,使功能划分更为清晰。🛠️ 实用工具:提取 IP 地址、提取邮箱、正则表达式匹配、时间戳转换,提取 URL、EXIF 元数据提取、QR 码解析与生成、jq 查询(v10.20.0 新增)、X.509 证书解析(含指纹信息)、IPv6 地址解析、子网计算 等。
🧬 数据分析:Shannon 熵计算、频率分析、字符分布统计、文件类型检测(Magic Numbers 识别)等,这些在恶意软件分析和数字取证中尤为重要。
🔍 正则与文本处理:正则表达式提取/替换、字符串分割与合并、大小写转换、去除空白字符、交替大写(Alternating Caps,近期新增)、代码美化(JavaScript Beautify)等。
直观的交互界面
CyberChef 的界面由四个核心区域组成,布局清晰、逻辑直观:
🖊️ 输入框(Input):粘贴你需要处理的原始数据。支持多种输入方式——直接粘贴文本、拖拽文件、从剪贴板粘贴图片(v10.22.0 新增),甚至可以直接加载二进制文件。输入区还会自动检测行尾序列(Line Ending Sequences)和 UTF-8 字符编码(v10.19.0 新增),免去手动设置的麻烦。
📂 操作列表(Operations):左侧的长列表,支持关键词搜索。操作被组织成"收藏夹(Favourites)""数据格式(Data Format)""加密/编码(Encryption / Encoding)""公钥(Public Key)""算术/逻辑(Arithmetic / Logic)""网络(Networking)""语言(Language)""工具(Utils)"等多个分类标签,方便快速定位。你也可以将常用操作添加到"收藏夹"中,进一步提升效率。
🍳 配方区(Recipe):将操作拖入此处,你可以自由调整顺序,甚至禁用某个步骤。这里的交互设计非常灵活:
- 🔀 拖拽排序:鼠标拖动即可调整操作的执行顺序
- ⏸️ 断点功能(Breakpoints):你可以在任意操作上设置断点,暂停执行,逐步排查数据在流水线中每一步的变化——这在调试复杂的多步骤食谱时极为有用
- 🚫 禁用/启用单个步骤:无需删除操作,只需点击禁用图标即可临时跳过某一步
- 每个操作都有独立的参数配置面板,例如选择 AES 加密时,你可以配置密钥长度(128/192/256 位)、加密模式(CBC/ECB/CTR/GCM 等)、填充方式(PKCS7/NoPadding 等)——v10.19.0 还为 AES、DES、3DES 的 CBC 和 ECB 模式新增了 NoPadding 选项
📤 输出框(Output):实时显示处理后的结果。CyberChef 默认开启"自动烘焙"(Auto Bake)模式——每当你修改输入或调整配方时,输出会即时自动更新,无需手动点击"执行"。如果处理大量数据导致性能下降,你可以关闭自动烘焙,改为手动触发。
强大的"魔棒"功能(Magic)
当你面对一串完全看不出规律的乱码时,CyberChef 的 Magic 操作可以自动分析数据的特征,并尝试识别其可能的编码方式。它能为你节省大量的猜测时间,是 CTF(夺旗赛)选手的常用外挂。
Magic 操作的智能识别并非简单的猜测,而是基于多种科学的检测技术协同工作:
🔍 正则表达式模式匹配:许多编码方案(如 Base64、十六进制、Gzip 等)具有可预测的字符结构。Magic 内置了针对所有可识别操作的正则表达式规则,逐一扫描数据以匹配可能的编码类型。对于同一操作,甚至会准备多组正则以覆盖不同的参数变体(例如使用非标准字母表的 Base64)。
🧲 魔术数字(Magic Numbers)检测:许多文件格式在头部包含特定的字节标识符(如 PDF 文件以
%PDF开头,PNG 图片以89 50 4E 47开头)。如果在某个解码分支中检测到这些标识,则该分支被判定为正确解码路径的概率将大幅提升。📐 Shannon 熵分析:Shannon 熵是信息论中衡量数据随机性的指标。高熵值意味着数据接近随机噪声(可能是未成功解码的乱码),而低熵值意味着数据包含重复结构(更可能是有意义的文本)。Magic 利用这一原理,将产生低熵值结果的解码分支排名更高。
✅ UTF-8 有效性校验:UTF-8 编码具有严格定义的字节结构。如果某个解码路径的输出是合法的 UTF-8 文本,则说明该路径很可能是正确的。
🔬 深度探测(Intensive Mode):开启此模式后,Magic 会在上述检测的基础上,额外对数据进行 XOR 暴力破解、位旋转(Bit Rotates)以及多种字符编码的穷举尝试。为了保证性能,深度探测默认仅处理数据的前 100 个字节。
🌍 语言频率分析:Magic 还会将数据的字节频率分布与约 40 种常见互联网语言(默认集)的平均频率进行比较。如果需要,还可切换至包含 284 种语言的扩展列表,以识别更冷门的语言编码。
🎯 已知明文过滤(Crib):你可以输入一个正则表达式作为"线索"——Magic 将只保留输出中匹配该线索的解码路径,极大缩小搜索范围。例如,你怀疑解码后的文本中包含
flag{这样的 CTF 标志,就可以将其设为 Crib。💡 背景自动运行:除了作为独立操作使用外,Magic 还会在后台线程中自动运行。每当输出区内容发生变化,Magic 会自动分析并在输出区显示一个魔棒图标。悬停该图标可以预览推荐的操作及其效果,点击即可一键追加到当前配方中。
🔗 食谱的分享与复用
CyberChef 的食谱不仅可以在本地保存,更支持通过 URL 进行分享——这是团队协作中极为实用的功能:
- 📋 保存食谱:点击"Save recipe"按钮,食谱会被保存到浏览器本地(注意:由于实现机制不同于 localStorage,保存方式是将配方编码到 URL 片段中),下次访问时可以直接加载
- 🔗 URL 分享:CyberChef 会将你的完整食谱配置和输入数据编码到 URL 的片段部分(即
#后的部分)。由于 URL 片段根据 HTTP 协议不会被发送到服务器,你的数据始终只存在于浏览器本地。将这个 URL 发送给同事,对方打开即可完整复现你的配方和输入 - 📦 导出为 JSON:食谱可以导出为标准 JSON 格式,便于存档、版本管理或在 Node.js API 中程序化调用
- 🌐 社区食谱库:GitHub 上有如
mattnotmax/cyberchef-recipes这样的开源项目,专门收集和整理各类实用食谱,涵盖恶意软件分析、日志解析、CTF 解题等场景,是学习 CyberChef 高级用法的绝佳资源
🔒 离线与隐私保护
虽然它是一个网页应用,但 CyberChef 支持完全离线运行。这意味着你的敏感数据(如密码或密钥)永远不会离开你的本地设备,极大地保障了安全性。
这一特性的技术原因在于:CyberChef 的所有数据处理逻辑完全在客户端(你的浏览器)中执行,没有任何服务器端组件。即使你使用的是 GCHQ 官方托管的在线版本,你输入的数据和配方配置也绝不会被发送到任何服务器。
正因如此,CyberChef 可以被编译为单个 HTML 文件,你可以:
- 📁 下载这个 HTML 文件,在完全断网的环境中使用
- 💻 将其放入虚拟机或隔离网络中,用于分析高风险样本
- 📧 通过邮件或 U 盘分享给其他人
- 🔐 在涉密网络中安全使用——对于处理机密数据的政府和军事机构而言,这一点至关重要
🐳 企业级部署方案
对于团队和企业用户,CyberChef 提供了灵活的部署选项:
Docker 容器化部署:
- GCHQ 官方已提供 Docker 镜像(
ghcr.io/gchq/cyberchef),支持快速部署 - 社区维护的 Docker 镜像(如
obeone/cyberchef-docker)会每日自动重建,确保始终使用最新版本,并将 CyberChef 嵌入非特权 NGINX 容器中运行,安全性更高 - 支持
linux/amd64和linux/arm64架构,部署命令只需一行:docker run -d -p 8000:8000 ghcr.io/obeone/cyberchef:latest - 还提供 Helm Chart,支持在 Kubernetes 集群上部署
SIEM 集成:
- CyberChef 已被内置集成到 Security Onion(一个广受欢迎的开源安全监控 Linux 发行版)中,分析师可以直接在 Security Onion 的 Web 界面中通过
https://SecurityOnion/cyberchef/cyberchef.htm访问 CyberChef - Palo Alto 的 Cortex XSOAR 也提供了 CyberChef 集成模块,可在 SOAR 剧本中自动化调用 CyberChef 操作
⚙️ 程序化调用与自动化
CyberChef 不仅是一个交互式 Web 工具,还提供了强大的程序化接口,支持将其能力嵌入到自动化工作流中:
Node.js API(官方):
- 通过
npm install cyberchef安装官方 npm 包,即可在 Node.js 脚本中以编程方式调用 CyberChef 的几乎所有操作 - 操作名称采用驼峰命名法(camelCase),与 Web 界面中的操作名称一一对应
- 支持直接导入 Web 界面中导出的 JSON 食谱,使用
chef.bake()方法执行 - 提供交互式 REPL 环境和
chef.help()方法,方便查询操作的参数配置
CyberChef Server(REST API):
- GCHQ 官方维护的
cyberchef-server项目,提供 RESTful HTTP 接口,包含/bake和/magic两个核心端点 /bake端点接受 POST 请求,传入输入数据和食谱 JSON,返回处理结果——这意味着任何编程语言(Python、Go、Java 等)都可以通过 HTTP 调用 CyberChef 的能力- 提供 Swagger 文档页面和 Docker 镜像,便于集成和部署
🤖 AI 集成(CyberChef-MCP):
- 社区项目 CyberChef-MCP 为 CyberChef 提供了模型上下文协议(MCP)服务接口,使 AI 助手(如 Claude、Cursor AI 等)能够以原生工具的方式直接调用 CyberChef 的 463+ 数据操作能力,代表了安全工具与 AI 结合的前沿趋势
适用场景
🛡️ 安全分析师 / SOC 分析师
快速解码恶意软件脚本中的混淆代码,或从复杂的日志中提取关键指标。
在现代安全运营中心(SOC)的实际工作流程中,CyberChef 的应用场景远比简单的解码更加丰富:
- 📊 日志过滤与分析:使用 "Filter" 操作快速从海量日志中筛选出包含特定 IP 地址、域名或攻击特征的记录行,免去编写 grep 命令的麻烦
- 🕐 时间戳标准化:不同日志源的时间戳格式往往不一致(例如
2025-04-20T12:00:00Z与04/20/2025 12:00:00),使用 "Translate DateTime Format" 操作可以将它们统一为同一格式,支持跨数据源的时间关联分析 - 💣 恶意载荷解混淆:攻击者常将恶意 PowerShell 命令进行 Base64 编码后再 Gzip 压缩,形成多层"套娃"。在 CyberChef 中,只需依次添加
From Base64 → Gunzip操作,即可一步步剥开混淆层,还原出原始的恶意命令。当输出中出现MZ头(Windows 可执行文件的标识)时,即可确认提取出了嵌入的恶意二进制文件 - 📧 钓鱼邮件分析:从可疑邮件附件中提取 IOC(失陷指标),包括恶意 URL、C2 服务器域名、文件哈希值等。结合正则表达式提取和各类解码操作,可以系统化地从恶意文档中抽取所有可疑指标
- 🧩 多层混淆的逐步拆解:利用 CyberChef 的"子段(Subsections)""寄存器(Registers)""跳转(Jumps)"等高级操作,可以处理具有条件逻辑的复杂混淆方案——这是一般在线工具完全无法实现的
💻 开发人员
格式化复杂的 JSON 响应,或者进行临时的加解密测试。
CyberChef 对开发者的价值同样显著:
- 🔧 API 调试:快速美化(Beautify)或压缩(Minify)JSON/XML 响应,检查 API 返回数据的结构
- 🔑 JWT 解码:将 JWT(JSON Web Token)粘贴到输入框,使用
JWT Decode操作即可查看 Header 和 Payload 的内容,无需跳转到 jwt.io 等外部网站 - 🧪 加密测试:在实现加密功能前,先在 CyberChef 中用相同的参数(算法、密钥、IV、模式、填充方式)验证预期的加密结果,确保代码实现的正确性
- 📝 编码转换:日常开发中频繁遇到的 URL 编码/解码、HTML 实体转义、Unicode 转换等,都可以一键完成
- 🔀 正则表达式测试:在 CyberChef 中直接测试正则表达式的匹配效果,比在代码中反复调试高效得多
🏴 CTF 玩家
在比赛中快速应对各类编码混淆题目,是解 Misc(杂项)和 Crypto(密码学)题目的必备工具。
CyberChef 在 CTF(Capture The Flag,夺旗赛)竞赛中的重要性怎么强调都不为过。以下是一些真实的赛题案例,展示了 CyberChef 的实战威力:
- 🎄 TryHackMe Advent of Cyber 2025 Day 17:该挑战要求选手使用 CyberChef 解码消息、绕过安全控制,涉及 Base64 双重编码、XOR 运算、MD5 哈希、ROT 密码等多种技术的组合运用
- 🇬🇧 NCSC CyberFirst Girls Competition:英国国家网络安全中心的赛题中,需要将 QR 码图片拖入 CyberChef,然后链式执行
Parse QR Code → From Base64 → Vigenere Decode操作来获取 Flag - 🔥 Huntress CTF "Hot Off the Press":选手需要从恶意 PowerShell 脚本中提取 Base64 部分,替换格式字符串占位符,最终解码出隐藏内容——全程在 CyberChef 中完成
- 🎯 Advent of CTF 2024:通过 CyberChef 的
XOR Bruteforce操作暴力破解 XOR 加密的 Hex 字符串,结合 ROT 密码解码获取最终 Flag
💡 CTF 实战技巧:面对未知编码时,第一步永远是将数据丢进 CyberChef 并开启 Magic 的 Intensive Mode——它会自动尝试所有可能的解码组合,很多时候可以一键破解多层编码。
🔬 数字取证(DFIR)调查员
CyberChef 在数字取证与事件响应领域也扮演着重要角色:
- 📷 EXIF 数据提取:从图片文件中提取地理位置、拍摄设备、时间戳等元数据信息,这些在调查中可能是关键证据
- 🕵️ 时区与格式转换:取证工作经常涉及多个时区的证据,CyberChef 提供了便捷的时间格式和时区转换功能
- 📜 二进制数据检查:直接以 Hex Dump 形式查看文件内容,检查文件头、嵌入数据等
- 💾 嵌入文件提取:从复合文档或内存转储中识别并提取嵌入的文件(通过 Magic Numbers 识别文件类型边界)
👤 普通用户
进行简单的时间戳转换、URL 参数解析或二维码生成。
即使你不是技术专业人士,CyberChef 也能在日常生活中派上用场:
- ⏰ 将 Unix 时间戳转换为可读的日期格式(或反过来),在处理各类系统日志或数据导出文件时很常见
- 🔗 解析复杂的 URL,查看其中的每个查询参数及其含义
- 📱 生成二维码:将任意文本或 URL 转换为 QR 码图片
- #️⃣ 计算文件的 MD5 或 SHA-256 哈希值,用于验证文件完整性(例如验证下载的软件是否被篡改)
- 🔤 进行各种编码转换,如莫尔斯电码编解码、进制转换等趣味应用
CyberChef 与同类工具对比
了解 CyberChef 的定位,有必要将其与常见的替代工具进行比较:
特性 CyberChef DevToys Ciphey Cryptii 运行环境 浏览器 / 离线 HTML Windows / macOS 桌面应用 Python 命令行 浏览器在线 操作数量 400+ 约 30 种 自动检测为主 约 50 种 链式处理 ✅ 支持(核心优势) ❌ 不支持 ❌ 自动化为主 ✅ 有限支持 离线使用 ✅ 完全支持 ✅ 桌面应用 ✅ 本地运行 ❌ 需联网 API 接口 ✅ Node.js + REST ❌ ✅ Python API ❌ 适合场景 安全分析 / 全场景 通用开发工具 自动解密 教育 / 轻量编码 CyberChef 的核心竞争力在于:操作种类最全、链式处理最灵活、隐私保护最彻底。它不是某个单一功能的最佳选择(例如自动解密方面 Ciphey 可能更为便捷),而是覆盖面最广、最"全能"的数据处理平台。在实际的安全工作流中,CyberChef 通常与 Volatility(内存取证)、Autopsy(磁盘取证)、Wireshark(网络分析)等专业工具配合使用,各司其职。
近期更新动态(v10.19 – v10.22)
CyberChef 保持着活跃的开发节奏,以下是近期版本的重要更新:
版本 发布时间 主要更新 v10.19.x 2024 新增 ECDSA/DSA 证书签名请求(CSR)解析;自动检测行尾序列和 UTF-8 编码;AES/DES/3DES 的 CBC 和 ECB 模式新增 NoPadding 选项 v10.20.x 2024 新增 jq操作(直接在浏览器中执行 jq 查询);新增 JSON ↔ YAML 双向转换;新增GenerateAllChecksums操作;X.509 证书解析新增指纹信息;修复 OCR(光学字符识别)功能;支持八进制 IP 地址v10.22.0 2025 年 2 月 新增剪贴板图片粘贴功能(支持粘贴一张或多张图片);修复 Hex 编码的百分号分隔符问题;Quoted Printable 操作改进 v10.22.1 2025 年 2 月 修复 npm 发布流程,使用 Node 24.5 运行 小结
CyberChef 完美地平衡了功能的强大与使用的门槛。无论你是网络安全专业人士,还是偶尔需要处理数据的普通用户,将它加入收藏夹都能显著提升你的工作效率。
它之所以能成为安全社区事实上的标准工具,核心原因有三:第一,零安装、零配置、零学习曲线——打开浏览器就能使用;第二,覆盖面足够广——400+ 操作几乎涵盖了数据处理的所有场景;第三,完全本地化处理——在数据安全日益受到重视的今天,这种"数据不出浏览器"的设计理念赢得了从个人用户到政府机构的广泛信赖。
你可以直接访问 CyberChef GitHub 页面 下载离线版本,或使用 在线演示版 开启你的"厨艺"之旅。
📚 延伸资源:
- 🔗 CyberChef 官方 GitHub —— 源代码、Issue 跟踪、版本发布
- 🔗 CyberChef 在线版 —— 官方托管的在线版本,无需下载
- 🔗 CyberChef Wiki —— 官方文档,包含 Magic 操作原理、Node API 用法等详细说明
- 🔗 社区食谱合集(mattnotmax/cyberchef-recipes) —— 按场景分类的实用食谱与相关教程链接
- 🔗 CyberChef for Security Analysts 课程 —— Applied Network Defense 出品的专项培训课程
- 🔗 CyberChef Server —— 官方 REST API 服务端项目
- 🔗 CyberChef-MCP(AI 集成) —— 将 CyberChef 接入 AI 助手的 MCP 服务
歡迎留言回复交流。
Log in to reply.