密钥/配置脱敏工具
Free粘贴 .env 或配置文件,API 密钥、密码和令牌会在敏感键名或已知密钥格式(AWS、GitHub、Stripe、JWT、PEM)旁自动遮盖。之后可安全地粘贴给聊天 AI 或错误报告。
完全在你的浏览器中运行。你的文件绝不会被上传、记录或发送到任何地方,即使是为了完成这次脱敏处理也不会。
最近活动
所有人可见。所有访客的最近 20 次使用记录,最新的在前。
暂无活动记录。快来成为第一个吧。
此工具的功能
Secrets/Config Redactor 接收一个 .env 文件、一份 YAML 或 JSON 配置,或任意粘贴的文本,并自动遮盖那些紧邻疑似敏感变量名的值(以及无论出现在何处的已知密钥格式,比如 AWS 密钥或 GitHub 令牌),从而让结果可以安全地粘贴给聊天式 AI、附加到错误报告,或发布到支持频道。
工作原理
每一行都会根据一个能够识别 .env(KEY=value)、YAML(key: value)、JSON("key": "value")、shell 导出语句以及 properties 风格(key = value)语法的模式进行检查。变量名会先被规范化(转为小写、去除标点),再与敏感关键词列表比对;如果匹配成功且值不为空,该值就会被替换为遮盖符,而周围的引号、分隔符和格式都会被原样保留。
在逐行处理之前,一个可选的格式检测步骤会扫描整段粘贴的文本,查找已知密钥的字面特征 -- AWS 访问密钥总是以 AKIA 开头,GitHub 令牌以 ghp_/gho_/ghu_/ghs_/ghr_ 或 github_pat_ 开头,Slack 令牌以 xoxb-/xoxp- 等开头,Stripe 密钥以 sk_live_/sk_test_ 开头,JWT 是由点分隔的三段 base64url 字符串,而 PEM 私钥会作为一个整体代码块从 -----BEGIN 到 -----END 被匹配。像 postgres://user:password@host 这样的数据库 URL,也只会遮盖其中的密码部分,保留用户名和主机名可见,因为它们单独存在时很少是敏感信息。
解决的问题
- 将配置文件粘贴给聊天式 AI 以进行调试,同时不泄露真实的 API 密钥和密码。
- 安全地将 .env 或日志片段附加到公开的错误报告、GitHub issue 或支持工单中。
- 在通话中与同事共享屏幕或配置文件,而无需事先手忙脚乱地隐藏敏感信息。
- 在提交文件或将其发送到任何地方之前,再次检查文件中是否藏有你忘记的敏感信息。
常见问题
›把真实的 .env 文件粘贴到这里真的安全吗?
是的,从这个意义上说,你粘贴的任何内容都绝不会离开你的浏览器 -- 这个工具完全没有服务器端组件,它只是运行在你当前所看页面上的普通 JavaScript。不过,这个工具基于模式匹配,并不完美:在将结果粘贴到其他地方之前,务必先浏览一遍,尤其是对于它可能无法识别的不常见键名。
›它是如何判断什么算"敏感"的?
两项独立的检查同时运行:变量名会与一份敏感关键词列表进行匹配(password、secret、token、key、auth、credential 等,列表在侧栏中可查看和编辑);同时,文本还会被单独扫描,寻找已知密钥的实际形态(AWS 访问密钥、GitHub/Slack/Stripe 令牌、JWT、PEM 私钥块,以及嵌入数据库连接 URL 中的密码),无论变量叫什么名字。
›为什么它有时会遮盖一些其实并不是秘密的内容,比如 AUTH_ENABLED=true?
因为"auth"在敏感关键词列表中,而这个工具故意选择宁可过度遮盖,也不愿冒遗漏敏感信息的风险。如果这种情况在你的配置风格中经常发生,可以从侧栏的"敏感键名模式"列表中删除该关键词,或添加你自己更具体的关键词。
›完全遮盖和部分遮盖有什么区别?
完全遮盖会用固定长度的"••••••••"替换值,无论原始值有多长,因此脱敏后的结果甚至不会泄露秘密的长度。部分遮盖会保留前两位和后两位字符可见(例如 sk••••••12),这在你需要在错误报告中区分两个不同的脱敏密钥、而又不想暴露任何一个时非常有用。
›我可以添加自己的敏感键名吗?
可以 -- 侧栏中的"敏感键名模式"框是一个简单的可编辑列表,每行一个模式。添加一个公司专用的变量名(比如 INTERNAL_SIGNING_SEED),它就会在包含该名称的每一行中被遮盖,匹配时不区分大小写,也不受下划线、连字符或驼峰命名的影响。
评论 (0)
觉得这个工具有用吗?留下评论、分享一个小技巧,或者告诉我们如何改进它。
暂无评论,快来抢沙发分享您的想法吧!