CyberChef 实战指南:如何在浏览器里完成 505 个数据加解密与分析操作
2026/9/1 13:45:16 网站建设 项目流程

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 是英国 GCHQ 出品的浏览器端数据处理工具,支持编解码、加密、压缩、协议解析等 505 个操作。它面向安全分析师、逆向工程师和普通开发者。读完本文,你能把它部署到本地、完成一次多层编码的自动剥离,并用 Node API 把处理流程写进脚本。

🧰 能力全景:CyberChef 能替你做什么

src/core/operations/下共有 505 个操作,按类别归组。最高频的十类能力如下:

能力分类典型任务对应操作
编解码Base64、十六进制、莫尔斯、Punycode 互转From Base64 / To Hex / From Morse Code
对称加密AES、RC4、Salsa20 加解密AES Decrypt / RC4
哈希与指纹计算 MD5/SHA、生成 TLS 指纹SHA2 / JA3Fingerprint
数据提取从日志里抽 IP、邮箱、URLExtract IP Addresses / Extract Email Addresses
协议解析解析 IPv6、TCP 头、X.509 证书Parse IPv6 Address / Parse X.509 Certificate
压缩打包gzip、bzip2、zip、tarGzip / Bzip2Compress / Zip
格式转换JSON↔CSV↔YAML、代码美化JSON to CSV / JSON Beautify
自动检测一键识别多层嵌套编码Magic
图像分析OCR 文字识别、二维码解析Optical Character Recognition / Parse QR Code
流程控制按行拆分分支、条件跳转Fork / Conditional Jump

左侧搜索框支持按名称或描述即时过滤,找不到的操作多半换个关键词就能搜到。看完这张地图,接下来用最短的路径跑起来。

最短上手路径:三步完成第一次解码

第一步,部署。Docker 是最短路径,直接用官方预构建镜像:

docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest

然后打开 http://localhost:8080。若想从源码跑,准备 Node.js v24(官方支持>=24 <27),执行npm install后再npm start,同样落在 8080 端口。

第二步,认识四个区域。界面分四块:右上是输入区,粘贴文本或拖入文件,最大约 2GB;右下是输出区,结果实时显示;最左是操作列表,按类别浏览或搜索;中间是Recipe 区,把操作拖进来就组成处理链。

第三步,做最小转换。在输入区粘贴SGVsbG8=,左侧搜索From Base64并拖入 Recipe 区,输出区立刻显示Hello。全程自动“烘焙”(Auto Bake),改一个参数就重算一次,不用点运行。

从日志里捞干净全部 IP

你手里有什么:一段几百行的 Apache 访问日志,IP 混在 UA 串和请求路径里。

操作步骤:

  1. 日志整体粘贴进输入区。
  2. 拖入Extract IP Addresses,它把全部 IPv4/IPv6 逐行列出。
  3. 需要换算就追加Change IP Format,转成十进制或十六进制。
  4. 最后加Sort按地址排序。

你得到什么:一份干净、可排序的 IP 清单,排查来源时不用再和 grep 互相校对。提取逻辑可对照 src/core/operations/ExtractIPAddresses.mjs 阅读。

把多层嵌套编码一层层剥开

你手里有什么:一段确认被编码过多次、但说不出层序的字符串,比如VTI4Z2JHOXV...这类。

操作步骤:

  1. 字符串粘贴进输入区。
  2. 拖入Magic,它靠字符统计与校验推断可能的编码。
  3. 层数多就把 Depth 参数调大,允许更深的递归探测。
  4. 命中后点击输出区提示,逐层应用解码。

你得到什么:原始文本,外加每一层被识别出的编码类型。原来要开好几个工具手试,现在一个页面走完。检测算法在 src/core/lib/Magic.mjs。

从图片里读出文字

你手里有什么:一张扫描单据或含文字的截图,内容无法选中复制。

操作步骤:

  1. 把图片直接拖进输入区,或点击上传。
  2. 添加Optical Character Recognition操作。
  3. 选择识别引擎与目标语言。
  4. 在输出区查看识别出的文本。

你得到什么:可继续参与后续处理的纯文本。识别由浏览器本地的 tesseract 引擎完成,图片不出机器。仓库自带一张可试的样例图:

效率进阶:想要 X 时怎么办

想看到每一步的数据形态?在 Recipe 里任意操作上设断点,执行会在那一步之前暂停,配合单步执行逐个查看中间数据。

想把流程分享给同事?直接复制页面 URL——hash 里携带recipeinput(Base64 编码)参数,对方打开即还原整个处理;也可以点 Save recipe 存进浏览器本地存储。

想让不同数据走不同逻辑?先用Fork把输入按行拆成多支,再用Conditional Jump按条件跳转,就能搭出“IP 走一条支路、域名走另一条”的流水线。

想把处理流程写进脚本?Node.js 包把每个操作都暴露成函数:

const chef = require('cyberchef'); chef.toBase32('input').to('string'); // NFXHA5LU

多个操作也能用bake(input, recipe)串起来执行,入口见 src/node/api.mjs。

🛠 排坑速查

症状可能原因解法
处理 GB 级输入时页面卡死Auto Bake 反复触发关掉 Auto Bake,手动烘焙
构建时内存溢出Node 堆内存不足构建前执行npm run setheapsize
npm install 报版本错误Node 版本不符使用>=24 <27的 Node.js(v24 为官方支持版)
Node 环境缺某个操作该操作仅限浏览器端改用浏览器版,或查 src/node/config/excludedOperations.mjs
Magic 识别不出编码数据不匹配任何已知格式开 intensive 模式,或用 crib 正则缩小候选

📋 下一步清单

  • 把调好的 Recipe 存成 JSON 存档,交给团队复用
  • 运行npm run newop,按交互模板搭一个自定义操作
  • 翻一遍 tests/operations/tests/ 里的操作测试样例,看配方怎么写
  • 阅读 CONTRIBUTING.md 的开发指南,把自用的操作贡献回去
  • 把所有处理都留在客户端的整套应用下载到内网机器,在断网环境里照样工作

【免费下载链接】CyberChefThe Cyber Swiss Army Knife - a web app for encryption, encoding, compression and data analysis项目地址: https://gitcode.com/GitHub_Trending/cy/CyberChef

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询