Browser Fingerprint · 全部本地计算
不用 Cookie,
网站也认得出这台机器。
浏览器每天被动向外报几十项环境信息:你用的什么内核、屏幕多大、时区在哪、几种语言偏好、显卡什么型号、同一句话画出来占多少像素。这些信息单独看都不值钱,拼在一起就足够稳定地把一台机器和另一台分开 —— 这就是浏览器指纹。这一页把你的那一份整个摊开,汇总成一个指纹 ID,还能反复测,看到底哪一项在变。 检测全在这台设备上完成:每一项取值都不上传、不记录、不进本机存储,刷新页面就清零。
你的指纹 ID · 这里显示前 24 位
采样中…
正在本地采样…
独特性
—
检测还没跑完。
撞车概率
—
本地估算 · 不是实测人群比例
怎么读这些数字 展开看逐项统计与估算口径
检测完成后,这里会说明有多少项拿到了值、多少项被挡在外面。
按每项大致能切几档来加权,再假设各项互相独立。真实人群并不独立(同一款手机的人,屏幕、内核、时区往往一起相同),所以实际远没有这么独特。本站没有访客分布数据,给不出实测比例。易变项按一半计入信息量,但不参与指纹 ID。
网站眼里的你
这段话全部由上面那六十项取值拼成,本站没有的额外信息一句也不写。测不到的东西也照实说测不到:屏幕刷新率、装了哪些扩展、是否在充电,浏览器都不给。
左侧圆点是状态:已取 / 未提供 / 取不到 / 易变;右侧是估算信息量(bit,条越长越能区分人,易变项按一半计入但不参与指纹 ID)。点一行看原始取值,点分组标题可折叠整组。
显示 0 / 0 项
正在本地采样组件…
这些信号是从哪里漏出去的
没有一项需要你同意,也没有一项需要装插件。浏览器为了正确渲染网页,必须知道自己是几倍像素比、该用哪种语言的数字格式、能调用哪些接口;而这些"为了正常工作"的取值,恰好构成一台机器的特征。网站把它们收起来、拼成一把哈希,就能在没有账号、没有 Cookie、你换了 IP 的情况下,仍然把你认成同一个人。跨站追踪、风控、以及"这个号又开小号了"的判定,用的都是这一层。
其中最稳的是渲染类那几项。Canvas 上叠六层图形再取一小段像素、WebGL 报出厂商与显卡驱动、音频绕一圈动态压缩器后取 13 个采样点、同一段文字在 43 款字体下量宽度、40 个小方块的布局测量值 —— 这些不是你能设置的选项,而是你的 GPU、驱动、字体栈和内核版本共同长出来的结果。换一台电脑、更新一次显卡驱动、系统加一款字体,值就会变。
也正因为如此,"指纹 ID 变了"不等于"你被识别出来了","两次一样"也不等于"安全"。它只是一把参照尺:真正被网站用来判定的,从来不是单个取值,而是几十项能不能自洽。所以这一页里最该先看的是「网络侧」那组——请求头里的 Accept-Language 与 Sec-CH-UA,和页面里读到的语言、品牌列表本应同源;一旦只改了一边,矛盾立刻会摆在那里。
这一页自己做了什么
- 不发请求:除了同源的 /api/whoami(首页本来就在用它读你的连接信息),本页不向任何地方发数据。每一项取值都只写在你的屏幕上。
- 不申请权限:所有探针只读浏览器已有的接口,不弹窗、不请求摄像头麦克风、不写 Cookie。本页也不写 localStorage —— 两次结果的比对只存在页面内存里,刷新即清零。
- 没有第三方脚本:本站响应头钉的 CSP 只允许同源脚本,所以没有 FingerprintJS、没有统计、没有广告。这一页的所有探针都是手写的。
- 「易变」那几项是真的会变:窗口尺寸、已用存储、网络类型。它们照样列在清单里、照样计入信息量,但不参与指纹 ID——不然每次测量都会"不一样",那个结论就毫无意义。两轮之间它们变了而 ID 没变,是正常现象。
三件这一页做不到、也不假装做得到的事。一、没有 JA3 / JA4 指纹:那需要看 TLS 握手的原始报文,本站所在的平台只在企业版能力里暴露这个字段,免费环境拿不到。二、没有跨上下文一致性校验:把同一套探针放进 iframe 与 Worker 里再跑一遍、比对两边结果,是抓"改了 UA 没改内核"这类伪装的正规做法,但本站 CSP 不允许这类上下文,所以没做。三、没有实测的独特性比例:本站不落库、没有访客库,那个百分比是按经验权重估出来的乐观上界,不是"全站 120 万人里有 3 个和你一样"这种结论。
怎么让指纹更难被认出来?
实话是:很难,而且代价是网站可能不正常显示。能真正降低区分度的是往"大众档"靠,而不是往"独特"方向改——用主流浏览器的主流版本、系统默认字体不装冷门字体、缩放用整数倍、深色模式随系统、别装会注入 JS 的扩展。反过来,把某几项强行改成假值(比如硬件核心数写死 8)通常让情况更糟:假值容易和其他项互相矛盾,而矛盾正是风控在找的东西。想认真隔离多个身份,需要的是每个身份一套独立的浏览器 profile 与独立 IP,不是某个开关。
为什么很多项显示"取不到"?
三种原因,页面分开标注了。「未提供」是这个浏览器根本没有这个接口——比如 Firefox 与 Safari 不实现 userAgentData,因为它们把它当追踪接口。「取不到」是被挡住——本站在响应头里用 Permissions-Policy 关掉了摄像头、麦克风和定位,所以这三项永远是站点策略拦截,不是你的设置;Chrome 也在逐步收敛 WebGL 的真实显卡型号串。两者都不是故障,但"这个浏览器不给"本身也是一种可区分的特征,所以这些项仍然算进指纹 ID。
指纹和 Cookie、IP 有什么区别?
Cookie 存在你机器上,可以清;IP 是你这次连接的地址,换个网络就换。指纹不存在任何地方,它是一堆已有事实的组合——清不掉,也不需要清。所以清了 Cookie 又开了无痕,网站仍然可能认出你;这也是为什么挂 VPN 只换了出口 IP,时区、语言、渲染特征全都留在原地。本站首页那格「浏览器暴露自查」查的是 WebRTC 有没有绕过代理把真实出口交出去,和这一页各管一摊:那边是网络侧的漏,这边是设备侧的露。
「再测一次」到底在测什么?
把全部组件重新采一遍,然后逐行和上一轮比。哪个组件变了,那一行会出现一条 coral 色的对比提示,顶部的比对条会说明指纹 ID 是否一致。它的用处在于找出哪些项在你这台机器上其实并不稳定:拖动窗口会变的、页面缩放会变的、装个字体就变的,都在这里露出来。注意它只是同一台设备两次快照之间的差异,不能证明"你的指纹会被识别成同一个人",那需要网站的服务器数据才能判断。