Glossary · Fingerprinting
Canvas fingerprinting
Identifying a device from tiny differences in how it renders an HTML canvas drawing.
Definition
Canvas fingerprinting is a technique where a page draws text or shapes with the HTML Canvas API and reads back the resulting pixels. Because rendering depends on the GPU, graphics driver, fonts and anti-aliasing, the output can differ slightly between devices, and a hash of it becomes one fingerprint signal.
How it works
- A script creates a canvas element (often invisible) and draws text, emoji, gradients or shapes with the 2D context.
- It reads the result with methods such as toDataURL(), which returns the image as a data URL, or getImageData().
- The pixel data is hashed. Identical setups tend to produce identical hashes; different hardware or font stacks often do not.
Why it matters
- It needs no permission prompt and works without cookies, so it is widely used by tracking and anti-fraud scripts.
- It is one of the signals antidetect browsers and privacy-focused browsers try to control, either by making output consistent or by adding noise.
Limits and common misconceptions
- "Canvas alone identifies me." It is one signal; it is usually combined with others such as WebGL, fonts and screen data.
- "Adding random noise is invisible." Noise that changes on every read can itself be detected by drawing the same image twice and comparing.
Example: Drawing the same sentence in the same font on a laptop with integrated graphics and on a desktop with a discrete GPU can produce pixel differences invisible to the eye but different when hashed.
No browser or proxy can guarantee that accounts will not be restricted. Follow each platform's rules.
Related terms
- Browser fingerprint — A combination of browser and device characteristics that can identify a browser without cookies.
- WebGL fingerprinting — Using WebGL graphics information and rendering output to identify a device.
Related guides
Sources
- MDN: Canvas API (browser docs)
- MDN: HTMLCanvasElement.toDataURL() (browser docs)
- W3C: Mitigating Browser Fingerprinting in Web Specifications (standard)
Checked 2026-11-07.