Canvas 指纹是什么?
网页在看不见的画布上画文字和图形,再把像素读回来算哈希。同一台机器每次都一样,不同机器各不相同,所以能当 ID 用。
让两台电脑画同样的文字和图形,像素会有细微差别:显卡、驱动、字体、抗锯齿都会留下痕迹。网站把这张图算成哈希,就是指纹。下面是你的,以及浏览器有没有打乱它们。
79 个嗅探器 · 不弹任何授权
你多半是人,眼下人在。你平时说,电脑的时区是,钟用。
你手上这台是,开的是,屏幕,显卡是,。
你经上网,;替你查网址的 DNS 在。。
你习惯用,。。装的字体透露出:。至于年龄,。
CF-Connecting-IPrequest.cf.cityrequest.cf.latituderequest.cf.asOrganizationedns.ip-api.comrequest.cf.timezoneDNS PTRrequest.cf.colorequest.cf.tlsVersion/cdn-cgi/trace · kex, sni/cdn-cgi/trace · warpTLS ClientHelloDate.now()RTCPeerConnection · STUNWebRTC host candidatemyip.ipip.netapi.ip.sbchatgpt.com/cdn-cgi/traceclaude.ai/cdn-cgi/tracewww.cloudflare.com/cdn-cgi/traceCloudflare Radar · IPv4 / IPv6User-AgentAccept-LanguageSec-CH-UASec-CH-UA-PlatformAccept-EncodingDNT · Sec-GPCReferer · document.referrernavigator.languagesIntl.DateTimeFormatIntl …timeZoneIntl …hourCycleIntl.Locale weekInfoIntl.NumberFormatnavigator.keyboardspeechSynthesisError.messagecanvas.toDataURLWebGL getParameterOfflineAudioContextfonts → SHA-256SHA-256canvas × 2userAgentDatauserAgentData.brands…architecture · bitnessscreen · devicePixelRatiorequestAnimationFramescreen.isExtended · screenXinnerWidth · availHeightWebGL RENDERERnavigator.gpu adapter.infoWebGL2 · MAX_TEXTURE_SIZEhardwareConcurrencynavigator.deviceMemorymaxTouchPoints · pointernavigator.getBatterynavigator.connectionenumerateDevicesAudioContext.sampleRatePublicKeyCredentialbluetooth.getAvailabilityMediaSource.isTypeSupportedrequestMediaKeySystemAccessstorage.estimateprefers-color-schemeprefers-reduced-motioncolor-gamut · dynamic-rangeprefers-contrast · forced-colorsdisplay-modedoNotTrack · GPCnavigator.cookieEnabledpermissions.querypdfViewerEnablednavigator.webdriverbait elementwindow.ethereum · DOM markshistory.lengthcanvas measureText网页在看不见的画布上画文字和图形,再把像素读回来算哈希。同一台机器每次都一样,不同机器各不相同,所以能当 ID 用。
用会给 Canvas、WebGL 和音频加随机干扰的浏览器,比如默认就开的 Brave,或开了 resistFingerprinting 的 Firefox。「防指纹」那一行会显示两次画出来的结果是否不同。
有些有用,它们把画图函数包了一层。但这本身也可能被发现:浏览器环境检测会把被替换的函数标出来。