Trackers render hidden text + shapes to a canvas, read the pixels back, and hash them. Tiny GPU/font rendering differences make every browser unique.
Canvas fingerprint test — what your GPU tells trackers
Live test
This card runs only the canvas fingerprint probe. To run all six fingerprint surfaces at once, use the full browser fingerprint test.
What is a canvas fingerprint?
A canvas fingerprint is a hash computed from a hidden HTML5 <canvas> element after the page draws specific text and graphics into it. Two browsers running on identical software but different hardware (GPU model, GPU driver version, anti-aliasing settings, installed fonts) produce slightly different pixel output. The hash of those pixels typically encodes 8–14 bits of entropy — enough to identify roughly one in ten thousand visitors.
Canvas fingerprinting was first documented in 2012, became widespread by 2014, and is now standard equipment in every commercial fingerprinting library — FingerprintJS, ThreatMetrix, IPQS, fingerprint.com — and in every major bot-detection stack.
How the canvas test works
When you opened this page, the test created a 240×60 canvas, drew the string Cwm fjord bank glyphs vext quiz in two fonts and three colors, then called canvas.toDataURL() to read the pixels back as a base-64 PNG. The hash above is computed from the entire byte stream of that image.
Reload the page. The hash will be identical — that's what makes canvas fingerprinting useful for tracking. Now visit a different machine with a different GPU; the hash will differ. Trackers store this hash and check for it on every site that includes their script.
How to block canvas fingerprinting
You can't disable the canvas API without breaking most modern websites. The defense is to add tiny per-pixel noise to toDataURL() output so the hash differs every page load. Done well, the noise is invisible to humans but completely changes the hash. Done badly, it's detectable as "noise was applied" and tracker stacks flag the visitor as a bot — worse than no defense.
Browser Leaks Fingerprint Shield applies seeded noise to canvas reads in the free tier, with the noise function disguised as a native browser method to defeat the standard toString() detection check. Install it, refresh this page, and watch the canvas hash above change.
Canvas fingerprint questions
Does my canvas fingerprint change between sessions?
Does incognito mode change my canvas fingerprint?
Why does my canvas test hash differ from someone else on the same browser version?
Can a website tell I am blocking canvas fingerprinting?
Run the full browser fingerprint test.
See your composite hash across all six surfaces — canvas, WebGL, audio, WebRTC, Client Hints, and User-Agent — in one click.
Open the browser fingerprint test →