Skip to content

What does your canvas fingerprint look like?

Fingerprinters draw text and shapes onto an invisible canvas and hash the pixels. Fonts, anti-aliasing and GPU rounding make the result differ from machine to machine. Here the scenes are drawn where you can see them.

Not run

Nothing has been measured yet.

The test draws two scenes, reads their pixels back, draws the text scene a second time to see whether anything adds noise, and shows you both scenes.

Runs in your browser. Nothing is kept.
Noise added
-
Blank
-
Even-odd winding
-
Image encoders
-

01Reading

What the hash measures

Same drawing, different pixels.

Nothing on the canvas is unique. The way this machine rasterises it is.
  • 01

    The hash is stable, not secret

    Browser, operating system, installed fonts and GPU driver together decide the low bits of every pixel, so the hash stays put between visits and differs between machines. It is one signal among many; on its own it narrows, together with the others it identifies.
  • 02

    Noise moves you into a smaller group

    Adding random noise makes the hash change on every call, which a site detects by drawing twice. The browsers that do that are few, so the defence trades one identifying value for another. A consistent, real-looking value per identity is the alternative.

VeilBrowser gives each profile its own consistent canvas output, so two profiles on one machine do not share a hash and neither changes between visits.