信息安全在线工具箱

24 个常用工具,覆盖格式处理、编解码、哈希、国密与国际密码算法、图片与音视频处理、攻防测试辅助,外加 jq 过滤器、Python 沙箱与 ffmpeg.wasm 三个 WebAssembly 运行时。计算全部在浏览器内完成,不上传、不留存;wasm 由本站自托管,断网同样可用。

JSON 格式化 / 压缩 / 校验

一键美化、压缩、校验并定位错误位置;可对键排序、转义成字符串,方便塞进代码或日志。

本地处理错误定位到行大文本不卡

jq 过滤器(完整 jq 语法 · wasm)

把命令行工具 jq 完整编译成 WebAssembly,在浏览器里跑:格式化、提取字段、条件筛选、分组聚合、重排、算数、字符串处理与 @base64 编解码,写法与命令行完全一致。清洗日志 JSON、从接口响应里抠字段、构造 payload 时最快。

wasm 本地运行 jq 1.7 全语法 数据不出浏览器

取字段速查:对象直接 .ip;数组取所有值用 map(.ip) 或 [.[].ip],取第一条用 .[0].ip,按值筛选用 .[] | select(.ip == "1.2.3.4")。

首次使用需加载 assets/vendor/jq/jq.wasm(2.8 MB,站内自托管),之后走浏览器缓存。快捷键 Ctrl+Enter 运行;语法错误会带行号列号。支持上传 .json / .jsonl 文件,自动识别单个 JSON 或每行一个 JSON。

常用过滤器 · 点一下填入

底层是官方 jq 1.7 的 C 源码经 Emscripten 编译,行为与命令行一致(含 @base64 / @base64d / @uri / test / reduce)。

针对当前输入的示例 · 点击即运行

分析上方输入框里的 JSON 结构,自动生成可点击的取值写法。修改输入后点「刷新示例」。

Base64 编解码

文本与 Base64 互转,支持 URL-safe 变体;也可把任意文件转成 Base64 / Data URL。

本地处理支持文件

文件转 Base64

URL 编解码 / 参数解析

按 encodeURIComponent 规则编解码,并把查询串拆成表格;做渗透测试时看参数最直观。

本地处理

转义与进制转换

文本与 Unicode 转义、十六进制、HTML 实体、二进制互转,写漏洞报告、构造 payload 时随手用。

本地处理

编码转换 · UTF-8 / GBK / 进制

一个框看清一段文本在各种编码下的真实字节:UTF-8 十六进制、百分号编码、Base64、Unicode 转义、HTML 实体、UTF-16。也能反着来——把一段乱码字节按 UTF-8 / GBK / GB18030 / Big5 逐个试,判断原始编码。做流量分析、看乱码响应、构造 payload 都靠这个。

本地处理 TextEncoder / TextDecoder GBK / GB18030

文本 → 各种编码(实时)

点任意一行即可复制该行结果;行尾标注字节数。UTF-8 中一个汉字占 3 字节,GBK 占 2 字节——字节数对不上时,先怀疑编码。

字节序列 → 文本(含中文编码识别)

数值进制转换(支持大整数)

使用 BigInt 计算,64 位整数、哈希值、ID 都不会掉精度;同时给出 4 字节小端 / 大端表示,方便对着内存和网络包看。

时间戳转换

秒 / 毫秒自动识别,同时给出本地时间、UTC、ISO 8601 与相对时间;写事件时间线、对日志时常用。

本地处理自动识别秒/毫秒

时间戳 → 时间

时间 → 时间戳

支持 2026-10-17、2026/10/17 19:30、2026-10-17T11:30:00Z 等格式,按浏览器本地时区解析。

JWT 解析

解出 header 与 payload,检查 exp / nbf / iat 是否有效;HS256/384/512 可直接用密钥验签。

本地处理验签在本地

HS256 / HS384 / HS512 验签

非对称算法(RS/ES)需要公钥,验签请用 RSA 工具;JWT 只做 Base64 解码,不代表已校验可信。

哈希计算

一次性算出 MD5、SHA-1、SHA-256、SHA-384、SHA-512 与国密 SM3;支持直接拖入文件计算校验值。

本地处理含国密 SM3

文件哈希

把文件拖到这里,或 点击选择文件
大文件在本地计算,不会上传

AES 加解密

基于浏览器原生 Web Crypto,支持 GCM / CBC / CTR;口令模式用 PBKDF2-SHA256 派生密钥,随机盐与 IV 随密文一起输出。

Web CryptoGCM 带完整性校验

口令模式下输出格式为 Base64(salt[16] + iv[16] + 密文),解密时同一口令即可自动拆包;原始密钥模式请自行保存 IV。

SM4 加解密(国密分组密码)

标准 GB/T 32907-2016 实现,CBC / ECB 模式,PKCS#7 填充;可与国密改造项目、密评自查对拍。

纯 JS 实现GB/T 32907
两套实现结果逐字节相同,可互相印证;wasm 首次切换需加载 214 KB。

CBC 模式下:IV 留空会随机生成,并把 IV 打包在密文最前面(输出为 Base64(IV+密文),解密时原样贴回即可);IV 填了值则按你给的 IV 计算,密文里不含 IV,便于与后端约定的固定 IV 对拍。

算法自检(标准测试向量)

RSA 密钥生成 / 加解密

浏览器本地生成 2048–4096 位密钥对并导出 PEM;公钥加密、私钥解密,填充方案为 OAEP-SHA256。

Web Crypto2048 / 4096 位

生成密钥对

加密 / 解密(OAEP-SHA256)

RSA-2048 + OAEP-SHA256 单次最多加密约 190 字节,长文本请先用 AES 加密、再用 RSA 保护密钥。

SM2 椭圆曲线(国密 wasm)

GM/T 0003 的椭圆曲线公钥密码算法:本地生成密钥对,公钥加密、私钥解密,密文支持 C1C3C2 / C1C2C3 两种排列。实现是 Rust 编译的 WebAssembly(gm-crypto-wasm),可直接用于国密改造项目自查、与后端对拍。

wasm 本地运算 GM/T 0003 sm2p256v1

密钥对

私钥全程只在本地内存里,不会发送到任何服务器;刷新页面即清空,请自行保存。

加密 / 解密

密钥来自上方两个输入框:加密读「公钥」,解密读「私钥」。密文排列与后端不一致时会解密失败——先确认对方用的是 C1C3C2 还是 C1C2C3。

实现自检(标准向量)

这个库里没有的部分

gm-crypto-wasm 0.1.5 只导出 SM2 / SM3 / SM4 三个命名空间:没有 sign / verify,也没有 ZUC(包的关键词里写了 ZUC,但构建产物里并没有)。

签名验签涉及 ZA 预计算、随机数 k 与 ASN.1 DER 编码,写错不会报错、只会“验签一直失败”,这种错误比不能签更糟,所以本站不做复刻。需要签名的场景:命令行用 openssl / gmssl,代码里用 gm-crypto(纯 JS 版)或 Java BouncyCastle,并可拿它们与本页的加密结果互相验。

Python 沙箱(CPython 3.12 · wasm)

把整个 CPython 编译进浏览器:写几行 Python 验证 PoC、算哈希、解编码、跑正则、试payload 变形,点一下就出结果,不用装环境、不用连服务器。运行时与站点同源,代码只在你自己的浏览器里执行。

CPython 3.12 Web Worker 隔离 可中断 无网络
未加载

            

首次运行会加载 CPython 运行时(站内 assets/vendor/pyodide/,约 13 MB),之后走浏览器缓存,通常 1–2 秒进入就绪。沙箱没有网络(不能发请求、不能扫端口),也读不到本机文件;input() 不可用;未内置 numpy/pandas。

这个沙箱能干什么

标准库齐全:base64、hashlib、hmac、json、re、struct、binascii、urllib.parse、itertools、zlib、secrets…… 处理编码、验签名、解 JWT、批量清洗日志、验证某个 payload 变形后的字节都够用。

它不是渗透执行环境:浏览器沙箱没有原始套接字,任何“跑个 exp 打目标”的想法在这里都行不通,也不该这么做。它的定位是算得清楚、看得见过程——把 PoC 里那几行关键逻辑单独跑一遍,确认哈希、编码、签名对得上。

视频 / 音频转换(ffmpeg.wasm)

完整 FFmpeg(n5.1.4)编译成 WebAssembly,在浏览器里跑:MP4 / WebM / MKV 互转、转 GIF、抽帧截图、提取音频、压缩改码率。文件全程不出本机,服务端零负担。

wasm 本地运行 H.264 / H.265 / VP9 / MP3 文件不上传

首次运行需加载 assets/vendor/ffmpeg/ffmpeg-core.wasm(31 MB,站内自托管),之后走浏览器缓存。单线程 wasm 速度约为原生的 10–30%,长视频请耐心等待。


          

使用说明 · 开源许可

  • ① 选择文件 → 点预设(或自己改参数)→ 运行;参数里的 {in} 会替换成上传的文件名,输出文件名可随意改,完成后自动列出所有新生成文件供下载
  • ② 「终止并释放」会杀掉 wasm 线程并释放内存;再次运行会重新加载核心(走浏览器缓存,很快)
  • ③ 单线程 wasm 性能有限:建议 100 MB 以内、几分钟以内的素材;GIF / 抽帧 / 提音频较快,重编码较慢
  • ④ 「媒体信息」预设只打印流信息,退出码非 0 属正常现象
  • ⑤ 开源许可:本工具核心 ffmpeg-core.wasm 基于 FFmpeg(n5.1.4)编译, 构建含 libx264 / libx265(GPL-2.0-or-later),依 GPL 要求提供完整源码获取方式: 构建配置 ffmpegwasm/ffmpeg.wasm v0.12.10 · FFmpeg 源码 ffmpeg.org; JS 包装层 @ffmpeg/ffmpeg 0.12.15 为 MIT 许可

图片加水印

文字水印 / 平铺水印,位置、字号、颜色、透明度可调,导出前可实时预览。图片在浏览器里处理,不会上传。

Canvas 本地处理不上传
拖入图片,或 点击选择
支持 JPG / PNG / WebP

图片压缩 / 转 Base64

调整尺寸与质量后导出,体积对比一目了然;也可直接复制成 Data URL,贴到 CSS 或 Markdown 里。

Canvas 本地处理
拖入图片,或 点击选择
支持 JPG / PNG / WebP

密码生成器

两种思路:随机字符密码,或把一句只有你记得的话(成语、诗句、家乡话)转成拼音口令。生成过程完全在本地,不记录、不上传。

crypto.getRandomValues熵值评估离线拼音字典

UUID / 随机字符串

生成 UUID v4,或按自定义字符集生成长度可控的随机串(测试数据、盐值、验证码都够用)。

本地生成

UUID v4

自定义随机串

正则表达式测试

实时高亮匹配结果,列出每个匹配的捕获组;写 WAF 规则、日志解析时省事。

本地处理

密码泄露检查

本地先算强度(字符集熵、常见弱口令、键盘序列、重复模式),再按 k-anonymity 协议查询 Have I Been Pwned 泄露库:只把 SHA-1 的前 5 位发出去,密码本身与完整哈希永不离开本机。

本地处理k-anonymity · 只传哈希前 5 位需联网查库

工作原理与隐私说明

① 本地评估:按字符集大小估算信息熵(bits = 长度 × log₂(池子大小)),并检测常见弱口令(内置 100+ 条中外常见密码)、键盘序列(qwerty、1qaz2wsx)、重复与连号模式。
② 泄露库查询:HIBP 收录了 8 亿+ 真实泄露密码。查询时本机只计算 SHA-1,取前 5 个十六进制字符请求 api.pwnedpasswords.com,服务端返回同前缀的全部哈希后缀,在本地比对出精确次数——服务端全程不知道你的密码是什么。
③ 结论用法:出现在泄露库中的密码无论强度多高都应立即更换;未泄露≠安全,仍需结合本地强度评估。

弱口令字典生成器

按社工规则把基础词、年份、常用后缀、大小写变形拼接成测试字典,导出 txt 给授权测试使用。全部在本地生成,不上传任何词。

本地生成仅限授权测试

合规提醒

本工具仅供已获得书面授权的安全测试与安全意识培训使用。对未授权系统进行口令爆破违反《网络安全法》第 27 条与《刑法》第 285 条。生成的字典请妥善保管,勿用于你无权测试的系统。

DNS / 子域名查询

通过公共 DoH(DNS over HTTPS)接口查询单条解析记录,或批量探测常见子域名是否存活——收集授权目标资产的起手工具。

DoH 加密查询需联网

常见子域名存活探测

对内置的 32 个常见子域前缀(www / mail / vpn / oa / api / db …)逐一查 A 记录,能解析出来的列出 IP。仅做 DNS 查询,不会访问目标主机。