CyberChef:5 分钟跑通的网页版加密解密与编码工具
【免费下载链接】CyberChefThe Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef
凌晨值班,你在一条告警日志里看到一串 Base64,怀疑里面藏着回连地址;或者接手一段被多层编码过的样本数据,想知道它到底写了什么。这时候你不想装 Python 环境、也不想记一堆命令参数,只想找个网页工具,把数据贴进去、点几下就看到结果。CyberChef 就是干这个的:一个跑在浏览器里的加密解密与编码转换工具,内置 500 多个操作,从 Base64、Hex 到 AES、RSA 哈希校验一应俱全,而且所有数据都在你本机浏览器里处理,不会上传到任何服务器。
CyberChef 工具横幅,出自 GCHQ 开源项目
跟一个真实任务走一遍:解开一段可疑日志
假设你抓到的日志里有一行aHR0cDovLzEwLjAuMC41OjU1NTUvY2Fs,看起来没什么,但你直觉它有问题。
打开 CyberChef 界面后,你会看到四个区域:右上角是输入框,右下角是输出框,左侧是按类别分组的全部操作列表,中间是你的"配方"区。把上面那串 Base64 贴进输入框,然后从左侧搜索From Base64,把它拖进中间的配方区。不需要点任何"运行"按钮——CyberChef 是自动执行(Auto Bake)的,改一下输入或配方,右下角立刻输出http://10.0.0.5:5555/cal。
接着你怀疑它外面还包了一层 URL 编码,就在 Base64 上方再拖一个URL Decode操作(拖入后可直接调整顺序)。每一层怎么转换,你都能在配方区里看得清清楚楚。如果这串数据你根本看不出是什么编码,可以拖一个Magic操作进去,它会尝试自动识别数据上的编码层并给出建议。整个过程中,你的数据没有离开过浏览器,这对敏感分析场景是个很实际的保障。
功能拆解:它到底能替你干什么
CyberChef 的操作数量庞大,日常最高频的大概是下面这几类:
| 功能 | 说明 | 一个具体例子 |
|---|---|---|
| 编码转换(Base64/Hex/URL) | 各种编码互转,支持批量 | 日志里的 Base64 串一行行解码 |
| 加密解密(AES/DES/RSA 等) | 对称与非对称加解密、签名验证 | 用密钥解开 AES 密文后直接得到明文 |
| 哈希与校验和 | MD5、SHA2、CRC、Fletcher 等 | 对下载的文件算 SHA256 核对完整性 |
| 数据提取 | 从文本中提取 IP、邮箱、URL、域名 | 从一段对话记录里批量抓出所有 IP 地址 |
| 压缩解包 | Gzip、Zlib、Tar、Zip 等 | 解出 gzip 数据后再接 Hex 查看内容 |
| 协议解析 | 解析 IPv4/IPv6 头、TLS 记录、X.509 证书 | 把一段 IPv4 报文的各字段拆开逐字段看 |
它的操作目录在源码里都能找到,按模块组织在 src/core/operations/ 下,每个操作一个文件,想看某个功能怎么实现可以直接翻。
另一类值得说的是"流程控制"操作。Fork可以按分隔符把输入拆开,对每一行分别执行后续操作——比如把多行 Base64 各占一行贴进去,Fork 之后接 From Base64,就得到逐行解码的结果,不用手动循环。Jump、Conditional Jump则能按条件走分支,组合起来相当于一个可视化的数据处理流水线。
它还能处理图片:拖一张截图进去,接上Optical Character Recognition(OCR,光学字符识别)操作,就能把图里的文字提取出来,方便你分析截图里藏的敏感信息。
测试用 OCR 图片:CyberChef 的 Optical Character Recognition 操作可识别此类图片中的英文文本
新手最常踩的坑
- Node 版本不对,装不起来。CyberChef 要求 Node.js
v24(package.json里写死>=24 <27),用旧版本跑npm install或npm start会报错。解决办法:升级 Node,或用 nvm 按项目里的.nvmrc切换到指定版本。 - 构建大配方时报内存不足(out of memory)。官方 README 里直接给了方案:执行
npm run setheapsize调大 Node 的堆内存后再跑。 - 以为数据会上传到服务器。恰恰相反,CyberChef 是纯客户端的,配方和输入都不经过任何服务器。反过来说,这意味着它也没有"服务端 API"给你调用——想集成进自己的系统,要用的是它自带的 Node.js 接口(
npm run repl可以进入交互式命令行直接调用各操作),而不是发 HTTP 请求。 - 输入输出格式没对上。有些操作要求输入是二进制(比如解密类操作),你贴进去的是纯文本就会被拒绝。先看操作说明里的输入类型,必要时在配方前面加一个
From Hex之类的转换操作把数据变成正确格式。
适合谁、不适合谁
它适合安全分析师、运维和开发:日志里夹带的 Base64、交接来的密文、要核对的文件哈希、要抓的 IP 列表,三五分钟就能在网页上搞定,而且不用把敏感数据交给任何在线服务。它不适合两类场景:一是生产环境的大文件批处理——2GB 以内的文件浏览器能扛,但更大的量就该走 Node.js 接口或专用工具;二是你想要一个稳定的 API 端点来集成——它本质是客户端工具,集成方式是以库的形式引入,而不是调接口。
源码就放在仓库里,操作实现、测试用例(tests/operations/)都可以直接读,官方仓库:https://gitcode.com/GitHub_Trending/cy/CyberChef
【免费下载链接】CyberChefThe Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考