Canvas 指纹来自同一段绘制指令在不同设备、驱动、字体和浏览器实现下产生的像素差异;字体指纹则观察可用字体集合或渲染结果。它们能增加环境特征的区分度,但会受版本、缩放和隐私设置影响,不能单独证明“同一个人”。
- 01Canvas 指纹利用绘制结果的像素差异,字体指纹利用可用字体或渲染差异。
- 02它们受显卡、驱动、字体、缩放和浏览器版本影响,是概率性特征,不是唯一身份证。
- 03比较两个环境时,应记录版本与条件并重复测试,不要追逐某个检测页的分数。
01Canvas 指纹怎么产生
网页可以用 Canvas API 绘制文字、图形或渐变,再通过读取像素数据得到一段结果。不同设备的图形驱动、字体栅格化、抗锯齿和浏览器实现,可能让同一段绘制产生细微差异;网站可以把这段结果转换成哈希,作为环境特征之一。
这并不意味着网站能读取你的屏幕或文件。它读取的是浏览器按照指令绘制出来的结果。隐私设置、浏览器版本更新、缩放比例和操作系统变化都可能改变结果,因此同一个设备在不同条件下也可能得到不同值。
02字体指纹怎么产生
字体指纹通常通过测量不同字体下文字的宽高、间距或渲染结果,推断设备安装了哪些字体。安装字体集合不同,结果可能不同;但字体版本、替换字体和浏览器限制都会影响判断。
一些浏览器会限制字体枚举或对字体测量做隐私处理,所以检测结果可能因浏览器而异。看到“字体列表”时,要区分真实安装字体与浏览器暴露的近似信息。
03为什么不是唯一身份证
因此,不能因为两个环境显示不同哈希就断定它们一定被区分,也不能因为哈希相同就断定不会被关联。指纹是概率性信号,解读时要保留条件与不确定性。
- 碰撞:不同设备可能产生相同或相近的结果。
- 漂移:浏览器升级、驱动更新、缩放变化都会改变结果。
- 随机化:部分浏览器会对 Canvas 结果加入噪声。
- 不完整:指纹只是网站可用信号之一,账号、Cookie、网络和行为也在其中。
04对多账号工作的意义
多账号管理关注的是环境特征是否稳定、是否符合目标平台的实际要求,而不是“分数越高越好”。如果环境配置频繁随机变化,可能让同一账号的表现前后不一致;如果所有环境完全一样,也可能降低区分度。
更实际的做法是:固定浏览器版本与配置,记录每个环境的关键特征,在实际目标页面上做只读测试,并观察一段时间内的稳定性。不要用单一检测页的结果替代业务验收。
05怎样做一次可重复的观察
观察记录的价值在于可复查。只写“指纹正常”没有信息量;写清版本、条件、结果和未验证范围,才能帮助下一位同事判断是否需要调整。
- 记录浏览器版本、操作系统、屏幕缩放、语言和时区。
- 在同一页面连续读取两次,观察结果是否稳定。
- 关闭重开后再读一次,区分会话变化与环境变化。
- 换一个浏览器版本重复,判断差异来自版本还是配置。
- 保存原始结果与时间,不只保存“通过/不通过”。
关于这篇指南,常被问到的。
QCanvas 指纹能唯一识别一台电脑吗?
不能保证。它可能增加区分度,但会碰撞、漂移,也可能被浏览器随机化。它只是众多信号之一。
Q关闭硬件加速会改变指纹吗?
可能。渲染路径变化会影响 Canvas 和 WebGL 结果,但具体变化取决于浏览器、驱动和页面实现,应实际测试。
Q字体装得越多越安全吗?
不一定。字体集合只是特征之一,刻意堆叠字体也可能造成不一致。更重要的是环境稳定、符合目标平台的实际使用场景。
参考资料
本文提供通用工作方法与产品边界说明。具体平台规则、权限、界面与可用功能以目标平台当前说明和实际版本为准。示例编号、金额与界面均为说明用途,不代表客户数据或效果承诺。