What is a canvas fingerprint?
A page draws text and shapes on an invisible canvas, reads the pixels back and hashes them. The result is the same every time on your machine and differs between machines, so it works like an ID.
Ask two computers to draw the same text and shapes, and the pixels come out slightly different: the graphics card, the driver, the fonts and the anti-aliasing all leave a mark. Sites hash that drawing into a fingerprint. Here are yours, and whether your browser scrambles them.
53 sniffers · no permission asked
You're probably from . You speak , and your computer runs on with a clock.
You're on , using , with a screen and graphics: .
You like , and . . Your fonts drop a hint: . As for your age, .
Referer · document.referrernavigator.languagesIntl.DateTimeFormatIntl …timeZoneIntl …hourCycleIntl.Locale weekInfoIntl.NumberFormatnavigator.keyboardspeechSynthesisprefers-color-schemeprefers-reduced-motioncolor-gamut · dynamic-rangeprefers-contrast · forced-colorsdisplay-modedoNotTrack · GPCnavigator.cookieEnabledpermissions.querypdfViewerEnablednavigator.webdriverbait elementwindow.ethereum · DOM markshistory.lengthcanvas measureTextuserAgentDatauserAgentData.brands…architecture · bitnessscreen · devicePixelRatiorequestAnimationFramescreen.isExtended · screenXinnerWidth · availHeightWebGL RENDERERnavigator.gpu adapter.infoWebGL2 · MAX_TEXTURE_SIZEhardwareConcurrencynavigator.deviceMemorymaxTouchPoints · pointernavigator.getBatterynavigator.connectionWebRTC host candidateenumerateDevicesAudioContext.sampleRatePublicKeyCredentialbluetooth.getAvailabilityMediaSource.isTypeSupportedrequestMediaKeySystemAccessstorage.estimateError.messagecanvas.toDataURLWebGL getParameterOfflineAudioContextfonts → SHA-256SHA-256canvas × 2A page draws text and shapes on an invisible canvas, reads the pixels back and hashes them. The result is the same every time on your machine and differs between machines, so it works like an ID.
Use a browser that adds random noise to canvas, WebGL and audio, like Brave by default or Firefox with resistFingerprinting. The "fingerprint protection" row shows whether two drawings came out different.
Some do, by wrapping the drawing functions. That can itself be noticed: the browser environment check flags replaced functions.