本地小工具
除了账号、路由、MCP 和技能这些主线功能,AI Switch 还带了两个日常用得上的小工具,都在侧边栏「系统」分组下:
- 加解密:文本的 Base64 / URL / Hex 双向转换。
- OCR识别:从图片里提取英文和数字,全程离线。
这两个工具的共同点是完全不联网。它们不调用任何远程服务,也不消耗你的算力池额度。
加解密
日常拿到一段 Base64 编码的 token、一个 URL 编码过的回调地址、或者一段 Hex 表示的字节,想看看里面是什么——这个工具就是干这个的。
界面很简单:左边输入框,右边选转换方式,下面是输出框和复制按钮。输入即转换,没有"执行"按钮。默认选中的方式是 Base64 解码,因为这是最常见的需求。
六种转换方式
| 方式 | 行为 |
|---|---|
| Base64 编码 | 文本按 UTF-8 编码成字节,再转 Base64 |
| Base64 解码 | Base64 转字节,再按 UTF-8 解码成文本 |
| URL 编码 | 等价于 encodeURIComponent |
| URL 解码 | 等价于 decodeURIComponent |
| Hex 编码 | 文本按 UTF-8 编码成字节,输出小写十六进制,每字节两位 |
| Hex 解码 | 十六进制转字节,再按 UTF-8 解码成文本 |
三点行为细节:
- 解码时会先去掉所有空白字符。 从终端或日志里复制过来的、被换行折断的 Base64 和 Hex 可以直接粘贴,不用手工拼成一行。
- UTF-8 解码是严格模式。 字节序列不是合法 UTF-8 时会报错,不会给你一串乱码字符。
- Hex 输出是小写、无分隔符(
68656c6c6f而不是68 65 6C 6C 6F)。
四种错误提示
| 提示 | 触发条件 |
|---|---|
| Base64 内容无效。 | 含 Base64 字母表外的字符,或去空白后长度模 4 等于 1 |
| URL 转义内容无效。 | 存在残缺的百分号转义(如末尾孤立的 %A) |
| Hex 内容必须是偶数长度。 | 去空白后长度为奇数 |
| Hex 内容只能包含 0-9 和 A-F。 | 含十六进制之外的字符 |
出错时输出框清空,只显示提示——不会给出半截结果让你误以为转换成功了。
它只做编码,不做加密
Base64、URL 编码、Hex 都是可逆编码,不是加密:任何人拿到编码后的字符串都能还原出原文。这个工具用来查看和转换格式,不要拿来"保护"任何东西。界面标题里的"加解密"指的是这类编解码操作。
OCR 识别
从截图里抠文字。典型场景:服务商控制台里的 API Key 只能截图不能复制、文档截图里的一串配置、报错弹窗里的一行 ID。
三步用完
- 给图。两种方式:
- 点「选择图片」挑一个文件(支持 PNG、JPEG、GIF、BMP、WebP)。
- 直接在这个界面按 Ctrl+V 粘贴剪贴板里的图片——截完图不用先存盘。
- 右侧出现预览,确认是不是想要的那张。
- 点「开始识别」,结果出现在下方文本框里,可以直接选中复制。
选到非图片文件会提示"请选择图片文件。";剪贴板里没有图片会提示"剪切板中没有图片。";没给图就点识别会提示"请先选择图片再识别。";识别过程本身出错提示"OCR 识别失败。"。
完全离线
这是这个工具最值得强调的一点。识别引擎是 ocrad.js——一个编译成 JavaScript、跑在浏览器/WebView 里的 OCR 库。整个流程是:
- 图片被读成一个本地 blob URL,渲染到
<img>元素上做预览。 - 点识别时,图片被绘制到一个内存里的
<canvas>。 - OCR 引擎直接读这个 canvas 的像素数据,在同一个进程里算出文字。
所以:
- 图片不会被上传到任何地方。 没有远程 OCR API,没有云端识别服务。
- 不消耗算力池额度。 它跟你配置的那些 AI 账号完全无关。
- 断网可用。
- 图片不落盘。 预览用的 blob URL 在界面销毁时被释放,AI Switch 不保存图片副本。
Web 服务模式下计算发生在浏览器侧
OCR 是纯前端计算。桌面端在应用进程里跑;Web 服务模式 下则在你的浏览器里跑——图片连服务器都不会经过。这对隐私更有利,但也意味着大图在性能弱的设备上会比较慢。
识别能力的边界
界面上有一条黄色提示:"更适合英文、数字和简单截图。" 这不是客套,是引擎的真实边界:
- 不识别中文。 引擎的字符集面向拉丁字母和数字。
- 高对比度、深色字浅底、字号偏大的截图效果最好。
- 花哨背景、渐变、半透明遮罩、极小字号会显著降低准确率。
- 识别结果不保证准确,用于 API Key 这类不能错一个字符的内容时,务必逐字核对。
如果结果不理想,可以试试:把截图放大之后重新截、裁掉无关区域只留文字、或者换成浅底深字。
录入 API Key 时的 OCR
同一个 OCR 引擎在账号界面里被复用了一次。新建或编辑 API 类型凭据时,API Key 输入框旁边有一个 OCR识别 按钮:
- 点按钮,它先尝试读系统剪贴板里的图片。
- 剪贴板里没有图片(或浏览器不支持剪贴板读取)时,提示"剪切板中没有图片,请选择图片文件。"并自动打开文件选择器。
- 识别之后,结果不是原始 OCR 文本,而是从中提取出的 API Key 候选。
提取用的是几组常见密钥形态的正则:
| 形态 | 说明 |
|---|---|
sk- 开头的长串 | 大量 OpenAI 兼容服务商用这个前缀 |
AIza 开头的长串 | Google 系 API Key 的常见前缀 |
| 三段点分隔的 Base64URL | JWT 形态的 token |
识别到多个候选时按行全部列出,让你自己挑。一个都没匹配上时回退成输出原始识别文本(去掉空行),至少你不用重新截一次图。
因为 OCR 换行可能把一个长密钥断成两截,提取会在原文和"每行去掉所有空白后"的版本上各跑一遍,两边的结果合并去重。
识别不到任何内容时提示"未识别到 API Key。",识别失败时提示"OCR 识别失败,请换一张更清晰的图片。"。
粘进去之后一定要核对
OCR 会认错字符——0 和 O、1 和 l、5 和 S 是常见的混淆。API Key 错一个字符就完全不可用,而且报错通常只是笼统的鉴权失败,很难看出是哪一位错了。识别完先跟原图对一遍,或者直接跑一次 模型连通性测试 验证这条凭据真的能用。