跳到主要内容
BrowserCheck
报告
#Canvas#浏览器指纹

Canvas 指纹检测:哈希相同或变化意味着什么

BrowserCheck Editorial
发布于 2026年9月27日
审核于 2026年9月27日

Canvas 指纹是网页通过图形接口绘制内容后得到的一种摘要。它适合比较同一种绘图方法在不同条件下的观察结果,但一个哈希值不能告诉你有多少人得到相同结果,也不能证明某个网站能认出你,或浏览器已经安全。

先打开浏览器指纹检测,找到 Canvas 结果。本文解释 BrowserCheck 当前实现和比较方法,没有提供浏览器人群的统计测量,也不对某个浏览器品牌作安全排名。

当前检测绘制什么

BrowserCheck 创建一个 200×60 像素画布,使用 14px Arial 字体,绘制橙色矩形,再以不同颜色和位置绘制两次「BrowserCheck」。随后调用 toDataURL 导出图像表示,再计算短哈希。对应代码是 src/hooks/use-extended-fingerprint.ts 中的 getCanvasHash。

比较时必须固定方法。其他检测站可能改变文字、字体、画布尺寸,或对原始像素而非编码后的图像计算摘要,因此不能直接比较两个站的哈希。短哈希也可能碰撞:摘要相同不能严格证明底层图像完全一致。

Canvas 同时用于图表、绘画和图像编辑。接口可用本身不代表网页正在跟踪用户;需要进一步考虑网站收集了什么、是否与其他信号组合,以及是否保存或共享数据。

怎样做一次可复现的比较

  1. 记录浏览器及版本、操作系统、当前配置文件、扩展和相关隐私设置。记录可以留在本地,无需公开哈希。
  2. 打开同一个 BrowserCheck 页面,等检测完成。把不可用状态与有效哈希分开记录。
  3. 不改动任何设置,再检测一次,先观察当前条件下的稳定性。
  4. 只改变一个设置,再进行检测。如果设置要求重启浏览器,重启后再测。
  5. 恢复原设置并复测,同时记录期间是否发生浏览器或系统更新。

不要一次改变多个扩展、隐私设置和浏览器版本,否则即使结果不同,也无法归因到某一项。隐私窗口也不天然等于严格对照组,它可能有不同的扩展权限或浏览器策略。与其给变化立即贴上「防护生效」标签,不如先保存条件和观察值。

四类结果分别如何理解

观察结果可以得出的结论不能证明什么
多次检测哈希相同当前方法得到相同摘要全球唯一性、永久稳定或匿名性
修改设置后哈希不同两次观察存在差异差异一定由某个内部渲染环节造成
未主动修改但哈希变化这组测量中输出不稳定某个特定防护机制已经启动
不可用或不支持本次没有得到有效值所有指纹收集均被阻止

遇到不可用时,先在相同条件下重试,再检查页面错误和浏览器是否限制画布读取。缺少数据不是检测通过。如果为排查问题临时修改防护,结束后恢复原设置,不要仅为获得一个可读哈希而长期降低保护。

为什么这不是隐私评分

BrowserCheck 没有将你的 Canvas 哈希与具有代表性的人群数据库比较,因此不能计算唯一性或其他网站识别你的概率。同一个 Canvas 结果仍可能对应不同的语言、屏幕、字体和网络环境。Canvas 变化也不意味着配置文件里的 Cookie 已经消失。

需要综合排查时,可阅读浏览器指纹原理和WebGL 检测指南。先把绘图、图形信息和网络观察分开,再判断它们各自支持什么结论。

来源与审核说明

本文于 2026 年 9 月 27 日对照当前 BrowserCheck 源码和以下文档整理,提供操作方法,不声称已测量特定浏览器版本的防护效果。记录截图或分享结论时,也应避免同时暴露不必要的网络地址与其他环境信息。

分享这篇文章: