跳到正文

密钥泄露扫描

Secret Scanner

在粘贴进来的代码、日志或配置里找 API 密钥、令牌和私钥,辅以熵值判断。

密钥会被提交进仓库、粘进 issue、打印进日志,而一旦发生,不管有没有人注意到,它都已经是公开的了。这里读取粘贴的代码、日志转储或配置文件,指出那些看起来像凭据的字符串——先按已知服务商的格式匹配,再对完全没有格式的那些按熵值判断。

🔒 完全在你的浏览器里运行secretsscanapi-keyaudit
扫描

你一边打字,这个标签页里的 worker 就一边扫。

高熵检测
每字符 4.0位

英文散文整篇看在 4.0 上下,单个词则不到 3.0。十六进制天生就是 4.0,base64 大约 5.5,62 个字符的随机字母表接近 5.95。

24

16 是下限。比这更短的是颜色码和 UUID 的碎片,值得找的凭据不会那么短。

48条服务商模式一直开着,覆盖 AWS、Google Cloud、GitHub、Slack、Stripe、OpenAI、Anthropic、Twilio、SendGrid、npm、PyPI、私钥、数据库 URI、Kakao、Naver 和 Toss Payments。

没有任何东西离开这个标签页。尤其是,这里找到的密钥不会被送去服务商那边验证它是否还活着——那等于把你源码里的每一份凭据,从你自己的机器上交给第三方,而这正是一个秘密扫描器存在的目的所要防的。离线校验就是在本地做算术:读服务商公开的格式,遇到 GitHub 令牌还会核对 GitHub 埋进去的校验和。结果里只显示打过码的预览,所以这份报告贴进工单是安全的。

怎么用

  1. 粘贴文本或拖入文件

    任何文本都行——源码、`.env`、CI 日志、配置转储。它在 worker 里运行,所以大段粘贴不会卡住页面。

  2. 先看格式匹配

    命中已知前缀——`AKIA…`、`ghp_…`、`sk-…`、PEM 块头——几乎可以确定。这些是要最先处理的。

  3. 把熵值命中当作候选

    一个没有可识别形状的高熵字符串,可能是密钥、哈希、UUID、压缩过的资源文件或者 base64 图片。工具会说明触发的是哪条规则,由你判断。

  4. 先轮换,再清理

    泄露了的密钥就是泄露了。删掉提交或者编辑日志并不能把它“取消发布”,所以先吊销并重新签发,再收拾历史记录。

常见问题

结果干净就代表没有秘密吗?

不代表,而这正是值得弄清楚的边界。它找的是它认识的模式和看起来随机的字符串。一种低熵的内部密钥格式、一个读起来像单词的密码、或者一条拆在两个变量里的凭据,都会直接漏过去。

它会检查密钥是否仍然有效吗?

它做不到,也不会去做。验证一个密钥意味着拿它去服务商那里试用,这会把你的凭据发给第三方——与这个页面的目的正好相反。一个密钥是否仍在生效,只有它的签发方能告诉你。

我的代码会上传吗?

不会。扫描在你浏览器的 worker 里进行。一个要你交出最可能装着秘密的文件的工具,不应该同时把它发到别处。

我压缩过的打包文件里所有东西都被标记了。

压缩过的输出很密,从构造上就看起来随机,而这正是熵值规则盯着的东西。扫描源码而不是构建产物,或者只用基于格式的规则。

可以从这些接进来

接下来

这些工具吃得下当前工具的产出,结果可以直接送过去。