FINGERPRINT

浏览器指纹检测

检测浏览器暴露的 Canvas / WebGL / Audio / 字体 / 屏幕分辨率等独特特征。所有检测均在本地完成,不会上传任何数据。

Technical Notes

浏览器指纹、TLS 指纹与追踪防护

指纹检测不是在找某一个“唯一号码”,而是观察浏览器、设备和网络协议暴露出的多组特征。 本页的检测在你的浏览器本地完成,用来评估当前环境是否过于独特、是否容易被跨站关联。

什么是浏览器指纹

浏览器指纹是网站通过 JavaScript 和浏览器 API 收集的一组环境特征,例如浏览器版本、系统平台、屏幕参数、语言、 时区、字体、Canvas / WebGL 渲染结果、AudioContext 结果、CPU 核心数和内存提示等。单个字段通常并不特别, 但组合在一起后,可能足以把同一台设备或同一个浏览器配置识别出来。

它和 Cookie 不一样:Cookie 是网站主动写入的标记,你可以清除;指纹更多来自浏览器和硬件的自然差异。 因此即使使用隐私窗口、清空 Cookie,某些网站仍可能通过稳定的指纹组合把访问行为关联起来。

本页实际检测什么

当前工具会在本地采集 Canvas、WebGL、Audio、字体、屏幕、硬件、浏览器/系统和时区等维度,并为每项生成本地哈希。 这些哈希用于页面内计算“唯一性指数”,不会把原始指纹数据上传到服务器。

  • Canvas / WebGL:观察图形渲染器、GPU 能力和绘制差异。
  • Audio:观察音频处理管线暴露的稳定差异。
  • 字体 / 屏幕 / 硬件:判断环境组合是否过于少见。
  • 浏览器 / 时区:用于发现语言、系统和出口地区之间的异常组合。

为什么它能用于追踪

追踪方不一定需要知道你的姓名或真实 IP。只要你的浏览器组合足够稳定,它就能把“今天的访问”和“上周的访问” 归为同一环境。广告系统、反作弊、账号风控和支付风控都会使用类似思路,只是目的不同:有些用于隐私追踪, 有些用于识别自动化、批量注册或异常登录。

JA3 / JA4 与浏览器指纹的区别

JA3 和 JA4 是 TLS 握手层面的网络指纹。浏览器访问 HTTPS 网站时,会发送 Client Hello,其中包含 TLS 版本、 加密套件、扩展、曲线等信息。JA3 会把这些字段拼接后生成哈希;JA4 在 JA3 基础上做了改进,降低字段顺序变化带来的误差, 更适合现代 TLS 流量分类。

这类指纹不是页面 JavaScript 能直接完整读取的内容。前端页面可以检测 Canvas、WebGL、字体等浏览器侧特征, 但真实 JA3 / JA4 通常需要服务端在连接入口记录,或者借助支持 CORS 的 TLS echo 服务。也就是说: 浏览器指纹看的是“页面能看到的环境”,JA3 / JA4 看的是“网络握手像什么客户端”。

如何降低唯一性

  • 优先使用具备指纹统一化设计的浏览器,例如 Tor Browser 或严格配置的 Firefox。
  • 少装会改变 Canvas、WebGL、字体或 UA 的随机化插件;频繁变化反而可能变成异常信号。
  • 让系统时区、浏览器语言、IP 出口地区保持一致,减少跨维度冲突。
  • 长期账号尽量固定同一浏览器配置文件,不要每天切换不同指纹和出口。

不建议盲目“伪装”

指纹防护不是把所有字段都随机掉。对风控系统来说,一个“每次都不同”的浏览器往往比普通浏览器更可疑。 更稳妥的策略是减少独特暴露、保持环境自洽,并避免在同一个账号上频繁切换系统、语言、时区、GPU 和网络出口。

如何结合本站其他检测一起看

指纹检测判断浏览器和设备环境是否过于独特,是否存在图形、音频、字体等稳定识别特征。
泄漏检测观察 WebRTC、DNS、IPv6 和时区是否暴露了与你 HTTP 出口不一致的信息。
Check 综合检测把 IP、指纹、语言、时区、请求头、平台可达性和信誉记录放在一起做环境一致性判断。

简单来说:好的隐私环境不是“看起来什么都没有”,而是“看起来像一个普通、稳定、逻辑一致的真实浏览器”。 降低指纹唯一性时,优先追求一致和稳定,再考虑隐藏或修改具体字段。