joshuaruppe/sappr
GitHub: joshuaruppe/sappr
一款面向渗透测试人员的纯浏览器端、可自托管的编码、加密、哈希识别与数字取证工具集合。
Stars: 0 | Forks: 0

**渗透测试人员的工具包。** 一套快速、现代化、可自托管的工具集合,
包含你实际会用到的工具:编码/解码、哈希、哈希识别、
加密、格式化、正则表达式、转换、生成器和二进制取证。
一切均在你的浏览器中运行。无后端,不上传任何数据。
[](https://vitejs.dev)
[](https://react.dev)
[](https://www.typescriptlang.org)
[](https://tailwindcss.com)




## 功能
- **编码 / 解码**:Base64 · Base32 · Base58 · Hex · URL 编码 · URL 解析 · HTML 实体 · JWT 解码器 · **Magic** 自动解码器
- **Crypto**:文本哈希 (MD5 → SHA-3 / BLAKE2) · HMAC · 流式文件哈希 · **哈希类型识别器** · AES 加密/解密 · XOR · ROT/Caesar · 经典密码
- **格式化**:多语言美化器 (JSON · YAML · XML · SQL · JS/TS · HTML · CSS/SCSS/LESS · GraphQL · Markdown) · 专用的 JSON 和 SQL 格式化工具 · 在 JSON / YAML / CSV / TOML 之间转换
- **Regex**:带有匹配高亮的实时测试器 · 纯英文解释器
- **转换**:Unix 时间戳 · 进制转换器 · 文本差异对比 · Unicode 检查器
- **生成**:UUID / ULID · 安全密码 · 随机 token · 二维码
- **取证**:从任何文件中提取类 `strings` 风格的可打印字符 · 从图像解码二维码
每个工具都是 [`src/tools/`](src/tools/) 下的一个独立文件夹;放入一个新工具,
它就会自动在导航栏、命令面板和启动器中完成注册。
## 设置与访问
设置菜单(右上角)会在本地保存你的选择:
- **主题**:浅色 / 深色 / 自动。
- **破解工具**:hashcat、John 或两者皆选。哈希识别器会根据你的选择,
为其生成的命令和参数进行量身定制。
- **密码门** *(可选)*:通过密码锁定实例。该
密码**仅以 Argon2id 哈希(随机 salt)的形式**存储在 `localStorage` 中,
绝不会以可恢复的形式保存,并且你可以自行选择重新提示输入密码的
频率(每次启动 / 每天 / 每周)。它会强制要求密码至少包含 10 个字符,
且必须包含大写字母 / 数字 / 特殊字符。
## 哈希识别
哈希识别器可以识别 Active Directory / Kerberos (Kerberoast 和 AS-REP)、NetNTLM、`/etc/shadow`、数据库、
网络设备、文档、压缩包以及许多原始哈希格式中的凭据和原始哈希。对于每个可能的
匹配项,它都会生成一个可直接运行的 **hashcat** (`-m …`) 和/或 **John** (`--format=…`)
命令。它会标记格式错误的输入,而不是仅凭前缀进行猜测,并且你可以直接从
UI 中附加字典、规则文件以及 GPU / workload / fork 选项。
它内置了 hashcat 权威的 模式 → 名称 → 示例 表
(`src/tools/hash-id/hashcat-modes.generated.ts`,提取自 hashcat 基于 MIT 许可的 [example_hashes](https://hashcat.net/wiki/doku.php?id=example_hashes))。
运行 `npm run update:hash-defs` 来刷新它;该脚本还会将我们精心维护的检测器
与权威列表进行交叉核对,并标记出任何模式不匹配的情况。
## 技术栈
Vite · React 18 · TypeScript · Tailwind CSS v4 (OKLCH tokens) · cmdk · lucide ·
[hash-wasm](https://github.com/Daninet/hash-wasm) (哈希 + Argon2id) ·
自托管的变量字体(离线安全)。繁重的任务会按工具进行代码分割 (code-split),并在关键时刻移入 Web Workers 中执行。
## 下载与运行(无需构建)
大多数人不需要构建任何东西。从
[最新发布版](https://github.com/joshuaruppe/sappr/releases/latest) 获取预构建的压缩包并将其
解压。然后,在该文件夹内,使用任何静态 Web 服务器为其提供服务:
```
npx serve # Node (Windows, macOS, Linux)
python -m http.server 8000 # Python (use python3 on macOS/Linux)
```
然后打开输出的 URL,或者将 nginx / Caddy 指向该文件夹。路由是
基于哈希的,因此**不需要任何重写规则**,并且每个版本都附带一个 `.sha256`
文件用于验证下载。
## 从源码构建并运行
需要 **Node 20+**(推荐使用 Node 24 LTS)。
```
npm install
npm run dev # dev server at http://localhost:5173 (hot reload)
```
生产构建(静态文件,可托管在任意位置):
```
npm run build # type-checks then builds to ./dist
npm run preview # serve the built ./dist locally to verify
```
`dist/` 中的内容是完全静态的。你可以将它们放在任何 Web 服务器
(nginx、Caddy、`python -m http.server`、GitHub Pages 等)背后。由于路由是
基于哈希的,因此**不需要服务器重写规则**。
## 脚本
| 脚本 | 作用 |
| --- | --- |
| `npm run dev` | 启动 Vite 开发服务器 |
| `npm run build` | 类型检查 + 生产构建至 `dist/` 目录 |
| `npm run preview` | 预览生产构建 |
| `npm run typecheck` | `tsc --noEmit` |
| `npm test` | 运行 Vitest 单元测试 |
| `npm run update:hash-defs` | 将 hashcat 的模式表重新拉取到哈希识别器中 |
## 添加工具
请参阅 [docs/AUTHORING_TOOLS.md](docs/AUTHORING_TOOLS.md)。简而言之:创建
`src/tools/
/`,包含 `meta.ts`、`Tool.tsx`、`logic.ts` 和 `logic.test.ts`,
并参考 `base64` 实现。无需进行中央注册。
## 隐私
每个工具完全在客户端运行:没有后端,你粘贴或
上传的任何内容都不会离开你的浏览器。可选的密码门也是本地的(
`localStorage` 中的 Argon2id 哈希)。请注意,浏览器端的哈希/加密仅适用于
工具和分析,不能替代经过审计的生产环境密钥处理方式。
## 路线图
- [x] 基础架构:自动发现注册表、主题设置、命令面板、可共享的哈希路由
- [x] 客户端工具集:编码 · 加密 · 格式化 · 正则表达式 · 转换 · 生成 · 取证
- [x] 设置(主题、破解器选择)+ 可选的 Argon2id 密码门
- [ ] 网络工具(IP/CIDR/MAC/UA 解析、DoH);该分类目前为占位符
- [ ] 隐写术(EXIF / LSB / magic-byte carving)
- [ ] 可共享的工具状态永久链接 + PWA 更新提示
- [ ] AI 文本转换包(Unicode 技巧、emoji 隐写术、经典密码)
- [ ] 可选的 Go 后端(WHOIS/RDAP、被动 DNS/地理位置)+ 服务器端认证/SSO + `/api/update-check`
- [ ] 单一多架构 Docker 镜像(GHCR,cosign 签名)+ 应用内的“有可用更新”横幅
## 许可证
[GNU Affero General Public License v3.0](LICENSE) (AGPL-3.0)。sappr 是自由且
开源的:你可以使用、研究、分享和修改它。保持其开源的约束条件是:如果你分发它,
或者将修改后的版本作为网络服务运行,你必须在相同的 AGPL 条款下
发布你的完整源代码。你可以随意 fork 并基于它进行构建,但你的版本也必须保持开源。
内置的 hashcat 模式表 (`src/tools/hash-id/hashcat-modes.generated.ts`)
基于 MIT 许可证(与 GPL 兼容)并保留其原始条款;完整通告请参阅
[THIRD-PARTY-LICENSES.md](THIRD-PARTY-LICENSES.md)。标签:React, Syscalls, Vite, 代码示例, 前端工具, 加密解密, 安全工具箱, 数据分析, 自动化攻击