CyberChef完整使用指南:505个数据转换操作如何组合成一条工作流
【免费下载链接】CyberChefThe Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef
CyberChef(官方定位是"Cyber Swiss Army Knife",即网络版瑞士军刀)是一个开源的 Web 应用,把加密、编码、压缩与数据分析做成了可以在浏览器里拼接的工具集。它的核心玩法不是"一个功能一个页面",而是把输入数据看作一道菜:你在左侧输入原始数据,中间依次挂上若干"操作"(比如先 Base64 解码、再 JSON 美化、最后哈希),右侧立刻看到结果,每一步之间都可以插删调整。这套"输入 → 操作链 → 输出"的结构贯穿全文,下面的章节也按这条链路展开:先看一条链路是怎么跑起来的,再看几类高频任务的实际搭法,然后是本地离线部署步骤、操作查找方式,以及处理大批量或敏感数据时的注意事项。
一、数据进来之后发生了什么:理解操作链
在 CyberChef 里,一条完整的处理流程叫作Recipe(配方)。它由三部分构成:
- 输入区:粘贴文本、上传文件或载入二进制数据;
- 操作序列:按从上到下的顺序执行,前一个操作的输出自动成为后一个操作的输入;
- 输出区:最终结果,可复制、可下载、可回读后重新加工。
几个值得知道的机制:
- 每个操作都有明确的输入/输出数据类型(字符串、字节数组、数字、HTML 等),类型不匹配时框架会提示而不是悄悄错乱。相关类型定义在 dishTypes/ 目录下,每个
Dish*文件对应一种数据形态。 - 操作支持"分叉"(Fork)和条件跳转(Conditional Jump、Jump、Return),也就是说链路不只能是直线,还能做成带分支的小流程,这在批量排查多段数据时很有用。
- 整条链路可以随时另存为分享链接,别人打开链接就能看到你的操作序列并复现结果,便于把一次排查过程"交付"给别人。
理解了这个模型,后面所有任务都是同一件事:找到合适的操作,按正确顺序排好。
二、三类高频任务,各搭一条链路
任务1:拿到一段看不懂的编码文本,逐层还原
典型场景是日志或抓包里出现多层套娃:外层 Base64,中间 URL 编码,内层才是真正的 JSON 报文。
推荐链路:From Base64 → URL Decode → JSON Beautify。如果第一层解码后输出全是乱码,说明这一层不是 Base64,可以先用Detect File Type(检测文件类型)和Magic(自动嗅探编码)让工具帮你判断该挂哪个解码器,这也是官方给新手准备的路径。
任务2:验证或破解一段简单加密
- 只想知道密文用的什么简单替换加密:挂ROT13 Brute Force或XOR Brute Force,它们会对常见 key 逐一尝试并列出可读结果;
- 已知是 AES:用AES Decrypt,填入密钥、模式和 IV 即可,操作参数都带默认值,先跑通再调;
- 需要比对哈希:直接用Generate All Hashes一次性输出 MD5、SHA1、SHA2 系列等多种摘要,免去逐个操作试算。
所有加解密操作(AES、RSA、SM4、ChaCha 等)都在 operations/ 目录下按名一个文件,阅读某个操作的实现就是最权威的参数说明。
任务3:解析一段二进制/网络数据
抓到的十六进制流量往往要先"看见结构"再谈分析,一条常用链路是:From Hex → Parse TCP → Parse IPv4 Header。CyberChef 内置了大量协议解析器(TLS 记录、UDP、以太网帧、X.509 证书、ASN.1 等),以及面向 CTF 与取证类的Extract Hashes、Extract IPs、Strings(提取可读字符串)等操作。
上图是仓库测试目录里的一张 OCR 样图。如果数据"长在"图片里,CyberChef 的Optical Character Recognition操作可以直接把图中文字识别出来,再接后续解码操作,这也是它覆盖"数据分析"而不只是"编码转换"的一个例证。
三、本地离线运行:构建步骤与启动方式
处理敏感数据时,数据不出本机更稳妥。本地部署只需 Node.js 环境(项目要求 Node 24 及以上版本,见 package.json 的 engines 字段)。
克隆源码(这是本文唯一出现的仓库地址):
git clone https://gitcode.com/GitHub_Trending/cy/CyberChef进入目录后:
cd CyberChef npm installnpm install结束后会自动执行两个 postinstall 钩子(修补依赖内导入语句),属于正常流程。构建与启动有两种:
- 开发模式:
npm start,实际调用 grunt 的 dev 任务,开发服务器默认监听8080端口,改代码会热更新; - 生产模式:
npm run build,把静态产物输出到build/prod/;随后本地用静态服务打开build/prod/index.html即可,生产静态服务默认端口为8000(见 Gruntfile.js 中 connect 配置)。生产构建还会打出一个可整包分发的 zip,适合放到内网机器上使用。
验证是否跑通:页面加载后,先挂一个From Base64,输入aGVsbG8=,输出应为hello。
四、505个操作怎么找:按任务分类检索
仓库的 operations/ 目录下有 500 多个操作文件,每个文件就是一个操作(如FromBase64.mjs、AESDecrypt.mjs)。全部按任务类别组织(分类定义见 Categories.json),主要类别包括:
- Encoding(编码):Base64/32/85/92、URL、HTML 实体、十六进制、摩斯电码等互转;
- Cryptography(加密):对称(AES、Twofish、SM4)、非对称(RSA、SM2、ECDSA)、哈希(SHA、BLAKE2、MD5);
- Compression(压缩):gzip、bzip2、LZ4、LZMA、XPRESS 等压缩与解压缩;
- Analysis / Parsing(分析解析):文件签名检测、协议解析、图表统计(频率分布、散点图、热力图);
- Conversion(单位换算):距离、面积、速度、质量、数据量单位互转;
- Flow Control(流程控制):Fork、Jump、Return,用于搭分支流程。
找不到某个操作时的两个途径:在界面操作列表里按名字/描述模糊搜索;若用 Node 方式调用,可以直接问框架本身——chef.help("base64")会列出所有名字或描述命中的操作及其参数说明(实现见 api.mjs)。
不打开浏览器的两条路
- 命令行 REPL:项目自带交互式入口,运行
npm run repl后可在终端里直接chef.FromBase64(...),适合快速验证单步结果; - Node 模块:CyberChef 作为 npm 包发布(入口见 src/node/),脚本里
import { Chef } from "cyberchef"之后,把网页里搭好的整条 Recipe 原样写进代码,就能做批量处理——这等于把"拖出来的流水线"变成了可重复执行的脚本。
五、数据隐私与大批量处理建议
- 隐私:CyberChef 的核心操作在浏览器内本地执行(Web Worker 中完成,见 workers/),普通编码转换不会把数据上传到服务器;但离线环境或高敏感场景仍建议走上一节的本地部署,避免任何中间环节。
- 大文件:处理超大输入时,优先选择能"分段喂入"的链路(例如先
Head/Tail截取片段再解析),而不是把整包数据一次性丢进多个重操作;Node 环境下也可以适当调大堆内存上限来容纳更大的中间结果。 - 版本:操作实现与依赖更新较快,本地部署时留意
package.json中的版本与 Node 版本要求,构建报错时先核对 Node 是否在 24 及以上。
把 CyberChef 用熟的关键不在背下全部 500 多个操作,而在于把"我的数据长什么样、想变成什么样"拆成一条可复现的操作链——先跑通最简版本,再逐层加解析和校验,链路本身就是可分享的排查过程。
【免费下载链接】CyberChefThe Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考