CyberChef
2026/5/29工具工具CyberChef大约 7 分钟
CyberChef
链接
是什么
CyberChef 是由 GCHQ(英国政府通信总部)开发的一款强大的在线数据处理工具,被誉为"网络瑞士军刀"。它提供了一个直观的拖拽式界面,可以对数据进行编码、解码、加密、解密、压缩、格式转换等多种操作。
核心功能:
- 编码/解码:Base64、URL、HTML、Hex、Binary 等
- 加密/解密:AES、DES、RSA、XOR、ROT13 等
- 哈希:MD5、SHA-1、SHA-256、CRC32 等
- 数据转换:进制转换、字符编码转换
- 压缩/解压:Gzip、Zlib、Deflate
- 数据分析:正则提取、字符串搜索、熵分析
- Recipe 系统:组合多个操作形成处理流程
在 CTF 密码学和 Misc 类题目中,CyberChef 是最常用的在线工具之一,特别适合快速进行数据转换和简单加解密操作。
安装与配置
在线使用
访问地址:https://gchq.github.io/CyberChef/
无需安装,直接在浏览器中使用本地部署
# 方法一:下载 Release
# 从 GitHub 下载:https://github.com/gchq/CyberChef/releases
# 解压后直接打开 CyberChef.html
# 方法二:使用 Docker
docker run -d -p 8000:8000 mpepping/cyberchef
# 方法三:从源码构建
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install
npm run build
# 构建完成后在 build/ 目录打开 index.html浏览器配置
推荐使用现代浏览器(Chrome、Firefox、Edge)
确保 JavaScript 已启用
推荐使用全屏模式以获得更好的操作体验基本用法
界面介绍
CyberChef 界面分为四个主要区域:
- Input(输入区):输入要处理的数据
- Output(输出区):显示处理结果
- Operations(操作区):可用的操作列表
- Recipe(配方区):拖拽操作到此区域构建处理流程
常用 Recipe 示例
Base64 解码
1. 在 Operations 中搜索 "From Base64"
2. 拖拽到 Recipe 区域
3. 在 Input 中输入 Base64 编码的字符串
4. Output 自动显示解码结果URL 解码
1. 搜索 "URL Decode"
2. 拖拽到 Recipe 区域
3. 输入 URL 编码的字符串
4. 查看解码结果Hex 解码
1. 搜索 "From Hex"
2. 拖拽到 Recipe 区域
3. 输入十六进制字符串
4. 查看解码结果编码/解码操作
# 常用编码操作
To Base64 # 转换为 Base64
From Base64 # 从 Base64 解码
To Hex # 转换为十六进制
From Hex # 从十六进制解码
To Binary # 转换为二进制
From Binary # 从二进制解码
To Octal # 转换为八进制
From Octal # 从八进制解码
URL Encode # URL 编码
URL Decode # URL 解码
HTML Encode # HTML 实体编码
HTML Decode # HTML 实体解码
To Charcode # 转换为字符代码
From Charcode # 从字符代码转换
To Decimal # 转换为十进制
From Decimal # 从十进制转换加密/解密操作
# 对称加密
AES Encrypt # AES 加密
AES Decrypt # AES 解密
DES Encrypt # DES 加密
DES Decrypt # DES 解密
Triple DES Encrypt # 3DES 加密
Triple DES Decrypt # 3DES 解密
Blowfish Encrypt # Blowfish 加密
Blowfish Decrypt # Blowfish 解密
# 流密码
RC4 # RC4 加解密
XOR # XOR 操作
# 古典密码
ROT13 # ROT13
ROT47 # ROT47
Atbash Cipher # Atbash 密码
Caesar Cipher # 凯撒密码
Vigenere Cipher # 维吉尼亚密码哈希操作
# 常用哈希
MD5 # 计算 MD5
SHA-1 # 计算 SHA-1
SHA-256 # 计算 SHA-256
SHA-512 # 计算 SHA-512
CRC32 # 计算 CRC32
RIPEMD-160 # 计算 RIPEMD-160
Whirlpool # 计算 Whirlpool
# HMAC
HMAC # 计算 HMAC数据转换操作
# 进制转换
From Binary # 二进制转换
To Binary # 转换为二进制
From Decimal # 十进制转换
To Decimal # 转换为十进制
From Octal # 八进制转换
To Octal # 转换为八进制
From Hex # 十六进制转换
To Hex # 转换为十六进制
# 字符编码
From Charcode # 字符代码转换
To Charcode # 转换为字符代码
From Base64 # Base64 转换
To Base64 # 转换为 Base64
# 数据格式
From JSON # JSON 解析
To JSON # 转换为 JSON
From XML # XML 解析
To XML # 转换为 XML压缩/解压操作
# 压缩算法
Gzip # Gzip 压缩/解压
Zlib # Zlib 压缩/解压
Deflate # Deflate 压缩/解压
Bzip2 # Bzip2 压缩/解压
Raw Inflate # 原始 Inflate 解压CTF常用技巧
多层编码解码
# 多层 Base64 解码
Recipe:
1. From Base64
2. From Base64
3. From Base64
# 直到得到可读文本
# Base64 + Hex 组合
Recipe:
1. From Base64
2. From Hex凯撒密码破解
# 使用 ROT13/ROT-N
Recipe:
1. ROT13
# 或使用 ROT47
Recipe:
1. ROT47
# 暴力尝试所有偏移
Recipe:
1. ROT-13 Brute Force
# 查看所有可能的结果,找到有意义的文本XOR 解密
# 单字节 XOR
Recipe:
1. XOR
Key: 0x42(尝试不同的密钥)
# 多字节 XOR
Recipe:
1. XOR
Key: "key"(使用字符串作为密钥)
# XOR Brute Force(暴力破解单字节 XOR)
Recipe:
1. XOR Brute Force
# 查看所有可能的结果AES 解密
# AES ECB 模式解密
Recipe:
1. AES Decrypt
Key: "0123456789abcdef"(16 字节密钥)
IV: 留空
Mode: ECB
Input: Raw
Output: Raw
# AES CBC 模式解密
Recipe:
1. AES Decrypt
Key: "0123456789abcdef"(16 字节密钥)
IV: "0123456789abcdef"(16 字节 IV)
Mode: CBC
Input: Raw
Output: Raw数据提取
# 使用正则表达式提取
Recipe:
1. Regular expression
Regex: [a-zA-Z0-9]{32} # 提取 32 位十六进制字符串
# 提取所有数字
Recipe:
1. Regular expression
Regex: \d+
# 提取所有邮箱
Recipe:
1. Regular expression
Regex: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}图片数据处理
# 提取图片中的隐藏数据
Recipe:
1. From Hex
2. Render Image
# 图片转 Base64
Recipe:
1. To Base64
# Base64 转图片
Recipe:
1. From Base64
2. Render Image熵分析
# 分析数据的熵(随机性)
Recipe:
1. Entropy
# 高熵值表示数据可能是加密或压缩的
# 低熵值表示数据可能是文本或有规律的Magic 操作(自动识别)
# 使用 Magic 自动识别数据类型和编码
Recipe:
1. Magic (深度: 3, 敏感度: 中等)
# CyberChef 会自动尝试各种解码方法
# 并显示可能的结果配合 CyberChef 使用的常见 CTF 场景
# 场景 1:Base64 编码的 flag
输入:ZmxhZ3tDeWJlckNoZWZ9
Recipe:From Base64
输出:flag{CyberChef}
# 场景 2:Hex 编码的数据
输入:666c61677b4865787d
Recipe:From Hex
输出:flag{Hex}
# 场景 3:URL 编码的字符串
输入:%66%6c%61%67%7b%55%52%4c%7d
Recipe:URL Decode
输出:flag{URL}
# 场景 4:多重编码
输入:Wm14aGJXVmxjbWxt
Recipe:
1. From Base64 -> ZmxhbGV4dA==
2. From Base64 -> flaglexth
# 场景 5:XOR 加密
输入:(十六进制密文)
Recipe:
1. From Hex
2. XOR(尝试不同密钥)导入/导出 Recipe
# 保存 Recipe
- 点击 Recipe 区域右上角的 "Save" 按钮
- 复制 Recipe 代码或下载 JSON 文件
# 加载 Recipe
- 点击 "Load" 按钮
- 粘贴 Recipe 代码或上传 JSON 文件
# 分享 Recipe
- 复击 "Copy to clipboard" 按钮
- 包含 Recipe 的 URL 可以直接分享批量处理
# 使用 Fork 操作处理多行数据
Recipe:
1. Fork
分隔符:换行符
2. From Base64(或其他操作)
3. Merge
# 每行数据独立处理密码哈希破解辅助
# 计算哈希值用于对比
Recipe:
1. MD5
# 或使用在线彩虹表
# CyberChef 不直接破解哈希,但可以计算哈希用于验证图片隐写辅助
# 提取图片末尾附加的数据
Recipe:
1. From Hex
2. Drop bytes(跳过图片头)
3. 提取剩余数据
# 查看图片的不同通道
Recipe:
1. From Hex
2. Render Image
3. 分析 RGB 通道常见问题
解码结果乱码
原因:选择了错误的解码方式或编码不是预期的。
解决:
- 尝试使用 "Magic" 操作自动识别
- 检查输入数据是否完整
- 尝试不同的解码组合
操作顺序错误
解决:
- 在 Recipe 区域拖拽操作调整顺序
- 删除不需要的操作
- 重新构建 Recipe
大文件处理缓慢
原因:浏览器内存限制。
解决:
- 使用本地部署版本
- 分段处理数据
- 使用命令行工具处理大文件
无法处理二进制文件
解决:
- 先将文件转换为 Hex 或 Base64
- 在 Input 中选择正确的格式(Raw/Hex)
- 使用 "From Hex" 或 "From Base64" 导入
Recipe 丢失
解决:
- 定期保存 Recipe
- 使用 URL 分享功能保存 Recipe
- 导出 Recipe JSON 文件
某些操作不可用
原因:某些操作需要特定的输入格式。
解决:
- 查看操作的帮助文档
- 确保输入数据格式正确
- 尝试先转换数据格式