☰
Snapzy敏感信息打码功能揭秘:自动识别+手动模糊双重保护的隐私截图方案
2026/9/29 21:42:01 网站建设 项目流程

Snapzy敏感信息打码功能揭秘:自动识别+手动模糊双重保护的隐私截图方案

【免费下载链接】SnapzyAn open-source native macOS screenshot and screen recording app. A CleanShot X alternative.项目地址: https://gitcode.com/gh_mirrors/sn/Snapzy

Snapzy 是一款开源的 macOS 原生截图与录屏应用(CleanShot X 的开源替代品),它的敏感信息打码功能可以自动识别截图里的邮箱、手机号、银行卡号、API 密钥等隐私内容,并用一键模糊把它们盖住。本文带你完整了解这套「自动识别 + 手动模糊」双重保护的隐私截图方案。

为什么分享截图前要做敏感信息打码?🔐

我们每天都在分享截图:发工单、发客服、发群聊。但截图里常常藏着不该暴露的内容——

  • 📧 邮箱、手机号、个人主页链接
  • 💳 银行卡号、有效期、持卡人姓名
  • 🔑 API Key、Access Token、密码、Bearer 令牌

手动一个个框选打码既慢又容易漏。Snapzy 的思路是:机器先把能识别的隐私全部标出来,人工只需复查和补充。

一键自动打码:本地 OCR + 规则引擎自动识别

在标注编辑器的快捷属性栏中,有一个盾牌图标按钮——Auto Redact(自动遮蔽),对应 AnnotateQuickPropertiesBar.swift 中的QuickAutoRedactControl。点击后:

  1. 按钮变成沙漏图标,顶部出现「正在扫描」的提示;
  2. Snapzy 在后台线程完成识别(界面不卡顿);
  3. 完成后弹出提示:「已自动遮蔽 N 处敏感信息」,或提醒「未检测到敏感信息」。

触发逻辑位于 AnnotateState.swift 的autoRedactSensitiveData(),核心检测服务是 AnnotateSensitiveRedactionService.swift。

能自动识别哪些敏感数据?

服务内置了 8 类敏感数据检测器(见 AnnotateSensitiveRedactionService.swift):

类型识别方式
📧 邮箱正则 + 系统链接检测
📱 手机号系统文本检测器(NSDataDetector)
🔗 网址链接系统链接检测
💳 银行卡号正则 +Luhn 校验算法+ 真实卡组织前缀(Visa/MC/Amex/Discover 等)
⏳ 卡有效期识别「VALID / THRU / EXP」标签附近的 MM/YY 格式
👤 持卡人姓名识别卡号下方、左对齐的姓名行
🔑 凭证api_key=...、password: ...、client_secret等键值对
🎫 Access TokenBearer 令牌、AWSAKIA...、JWT(eyJ...)、sk-/ghp_等典型格式

一个细节值得注意:卡号识别不是简单匹配一串数字,而是会校验前缀 + Luhn 校验位,甚至能处理 OCR 把卡号拆成4111 1111 1111 1111多段的情况(多行拼接检测),大幅降低误报。

从「认出文字」到「盖住文字」

整个流程分三步,全部发生在你的 Mac 本地:

  1. 本地 OCR:调用系统 Vision 框架(VNRecognizeTextRequest,高精度模式、自动检测语言)识别图中文字及坐标;
  2. 规则匹配:对上述 8 类规则逐一匹配,重叠结果按置信度择优合并;
  3. 坐标回填:把文字匹配区间映射回图像像素位置,向外做适度 padding、合并重叠区域,最后自动生成打码标注(applySensitiveRedactionRegions),并自动选中这些区域方便你调整。

手动模糊:8 种打码效果随心选 🎨

自动识别之外,Snapzy 提供8 种模糊打码效果,定义在 AnnotateAnnotationItem.swift 的BlurType中:

效果效果效果效果
马赛克高斯模糊六边形晶体化
点彩半调胶带和纸胶带

使用方法很简单:

  • 按快捷键B或直接点击工具栏的Blur(模糊)工具;
  • 在快捷属性栏中切换 8 种效果(如用「和纸胶带」遮盖更美观);
  • 在图中拖出矩形区域即可完成打码。

值得一提的是渲染顺序:模糊层始终位于图形/箭头/文字之下(见 docs/ANNOTATE.md 的 z-order 说明),所以你在打码区域上画的箭头和标注不会被打码盖住。

自动 + 手动双重保护:推荐工作流

  1. 用 Snapzy 截取区域 / 窗口 / 全屏(或先录屏再截图);
  2. 进入标注编辑器,点击快捷属性栏的盾牌按钮「自动遮蔽」;
  3. 查看提示,确认自动打码的区域数量;
  4. 用**选择工具(V)**微调位置——自动生成的区域默认处于选中状态,可直接拖动、缩放或删除;
  5. 对漏网的内容(如人脸、地址)手动补一个模糊框;
  6. 保存或复制。打码是真正烧录进导出图像的(由统一的导出器渲染),分享出去的就是已脱敏的图片,而不是一个可被撤销的图层。

隐私友好:数据不出本机 🛡️

这套方案最让人安心的一点是:OCR 识别与规则匹配全部在设备端完成,扫描在后台线程异步执行、支持中途取消(切换图像或新任务时旧结果会被丢弃),截图内容不会上传到任何服务器。对于客服、开发、财务等经常需要「截图前先脱敏」的场景,这套本地隐私截图方案既快又安全。

相关源码与文档 📚

  • 自动打码核心服务:AnnotateSensitiveRedactionService.swift
  • 触发与区域应用逻辑:AnnotateState.swift
  • 8 种模糊效果定义:AnnotateAnnotationItem.swift
  • 自动遮蔽按钮 UI:AnnotateQuickPropertiesBar.swift
  • 编辑器架构说明:docs/ANNOTATE.md
  • 打码效果回归测试:AnnotateBackgroundRedactionTests.swift

【免费下载链接】SnapzyAn open-source native macOS screenshot and screen recording app. A CleanShot X alternative.项目地址: https://gitcode.com/gh_mirrors/sn/Snapzy

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

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

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

立即咨询