Deep Dive Fingerprinting 📅 June 2026 ⏱ 7 min read

Canvas Fingerprint Test — How It Works & How to Block It (2026)

Every website you visit can silently draw invisible graphics in your browser using the HTML5 Canvas API, then read back the pixel data to create a unique fingerprint from your GPU — no cookies, no login, no storage required. Canvas fingerprinting is one of the most powerful and widespread tracking techniques used today. This guide explains exactly how it works, how to test whether you're exposed, and how to block it in every major browser.

What Is Canvas Fingerprinting?

Canvas fingerprinting exploits a fundamental property of modern browsers: every GPU, graphics driver, and operating system combination renders graphics slightly differently. These differences are invisible to the human eye — we're talking about sub-pixel anti-aliasing variations and floating-point rounding differences in the GPU pipeline — but they produce unique, measurable pixel outputs that can be hashed into a stable identifier.

A website runs this fingerprint silently in JavaScript, usually in under 50 milliseconds, without any visible element appearing on screen. The tracking happens before you even see the page fully load.

How Common Is It?

Studies by Princeton and the EFF found canvas fingerprinting on over 5% of the top million websites as of 2022 — including major news sites, e-commerce platforms, and ad networks. In 2026, usage is significantly higher, as anti-tracking tools have made cookies less reliable and publishers have turned to fingerprinting as a replacement.

How Canvas Fingerprinting Works — Step by Step

1
Create hidden canvas JavaScript creates a <canvas> element with display:none — invisible to you.
2
Draw specific content A specific text string is rendered (often "Cwm fjordbank glyphs vext quiz! 😊") using multiple fonts and font sizes. Geometric shapes and gradients may also be drawn.
3
Read back pixel data canvas.toDataURL() or getImageData() converts the rendered output to a base64 string or raw pixel array.
4
Hash the output The pixel data is hashed (typically MD5 or MurmurHash) to produce a compact fingerprint like 0x4a2f9c1e.
5
Track across visits The hash is sent to an analytics or ad server. The same device produces the same hash on every visit — even across different browsers, incognito mode, VPNs, or after clearing cookies.

The Real JavaScript Behind It

Here's a simplified version of what runs on your browser (a real fingerprinter uses more elaborate content):

const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.textBaseline = 'top';
ctx.font = "14px 'Arial'";
ctx.fillStyle = '#f60';
ctx.fillRect(125, 1, 62, 20);
ctx.fillStyle = '#069';
ctx.fillText('Cwm fjordbank glyphs 😊', 2, 15);
ctx.fillStyle = 'rgba(102, 204, 0, 0.7)';
ctx.fillText('Cwm fjordbank glyphs 😊', 4, 17);

// This output is unique per GPU/OS/driver combo:
const fingerprint = canvas.toDataURL();
💡 Why emoji matters
Emoji characters like 😊 are rendered by the OS emoji font (Apple Color Emoji, Segoe UI Emoji, Noto Color Emoji), which differs significantly across operating systems and versions. Including emoji in the canvas string dramatically increases fingerprint uniqueness.

What Makes Canvas Fingerprints Unique

The rendering differences between devices come from multiple layers:

🖥️
GPU model & driver version
Different GPU silicon (Intel, AMD, NVIDIA, Apple M-series) processes shader arithmetic differently. Driver versions change rendering behavior even on the same hardware.
🔤
Font rendering engine
macOS uses Core Text, Windows uses DirectWrite, Linux uses FreeType — each handles sub-pixel antialiasing, hinting, and kerning differently, producing measurably different pixel outputs.
📐
Screen DPI & scaling
High-DPI (Retina) screens render at 2× or 3× scale. The devicePixelRatio affects canvas dimensions and the precision of floating-point calculations in the pipeline.
🎨
Color profile & color space
Display color profiles (sRGB vs Display P3) affect how color values are interpreted and converted in the canvas pipeline.

How Accurate Is Canvas Fingerprinting?

Canvas fingerprinting alone achieves 80–90% uniqueness across browser populations in academic studies. But websites don't rely on canvas alone — they combine it with WebGL, audio, fonts, screen resolution, and dozens of other signals to produce a combined fingerprint that reaches 99%+ uniqueness.

This makes the combined fingerprint more reliable as an identifier than third-party cookies, which are increasingly blocked or deleted. Canvas fingerprinting also works across:

How to Test Your Canvas Fingerprint

  1. 1
    Open UNDETECT.CLUB in the browser you want to test at undetect.club. The scan starts automatically.
  2. 2
    Find the Canvas 2D Fingerprint card — it shows your hash value and whether noise protection is active.
  3. 3
    Reload the page — if the hash changes on every reload, Brave or a Canvas Blocker extension is working. If it stays the same, you're fully exposed.
  4. 4
    Check the Anti-Fingerprint Tools card — it explicitly detects whether Brave canvas protection or Firefox RFP is active.

How to Block Canvas Fingerprinting

MethodBrowserHow it worksBreaks sites?Effectiveness
Brave ShieldsBraveAdds random noise per originRarelyHigh
privacy.resistFingerprintingFirefoxReturns blank/uniform canvasSometimesVery High
Tor BrowserTorUniform canvas for all usersSometimesVery High
CanvasBlocker ext.Firefox/ChromeRandomize / block canvas APIRarelyHigh
uBlock OriginAnyBlocks fingerprinting scriptsRarelyMedium
Incognito onlyAnyNothing (cookie clear only)NoNone

Brave Browser (Recommended)

Brave injects per-origin random noise into canvas, WebGL, and audio APIs automatically. The noise is small enough that it doesn't visually break websites, but large enough that the fingerprint hash is different for every website and different on every page reload. No configuration needed — just install Brave and canvas fingerprinting is blocked.

For maximum protection: Go to Shields → Fingerprinting → Block all fingerprinting. This uses a stricter blank canvas approach for sites where noise-based protection might not be enough.

Firefox with privacy.resistFingerprinting

Open about:config, search for privacy.resistFingerprinting, and set it to true. Firefox will then return a blank (all-zeros) canvas for all sites, making every Firefox RFP user look identical to fingerprinters.

Note: this can break sites that use canvas for legitimate rendering (like Google Maps or WebGL games). Use a separate browser profile for those.

CanvasBlocker Extension

Available for Firefox and Chrome. Intercepts canvas API calls and returns randomized or blocked data. Highly configurable — you can whitelist specific sites that need real canvas access. Works well when combined with uBlock Origin.

Canvas + WebGL + Audio: The Combined Fingerprint

UNDETECT.CLUB tests all three rendering-based fingerprinting vectors:

🎨
Canvas 2D
GPU + font rendering → unique pixel hash per device. 80–90% unique alone.
🖥️
WebGL
GPU vendor/renderer string + shader precision + extension list. Directly exposes your GPU model.
🎵
Audio
OfflineAudioContext processing output differs per OS/hardware. Adds uniqueness orthogonal to canvas.

Combined, these three signals — plus fonts, screen, timezone, and more — create a fingerprint accurate enough to track billions of devices individually.

Frequently Asked Questions

What is canvas fingerprinting?
Canvas fingerprinting draws invisible graphics using the HTML5 Canvas API and reads back the pixel data. Because every GPU, driver, and OS renders graphics differently, the output creates a unique hash that identifies your device across websites — no cookies needed.
Can I test my canvas fingerprint for free?
Yes. UNDETECT.CLUB runs a free live canvas fingerprint test with 31 other browser checks. It shows your canvas hash, detects active noise protection, and gives a full privacy score — all without collecting any data.
Does clearing cookies remove my canvas fingerprint?
No. Canvas fingerprinting works without any stored data. It reads your GPU and OS rendering properties on every page load. Clearing cookies, using incognito mode, or changing browser will not change your canvas fingerprint.
Does Brave Browser block canvas fingerprinting?
Yes. Brave injects random noise into canvas, WebGL, and audio APIs. Every website sees a different fingerprint — making tracking impossible. UNDETECT.CLUB can detect when Brave protection is active.
How accurate is canvas fingerprinting?
Canvas alone is 80–90% unique per device. Combined with WebGL, audio, and font fingerprinting, accuracy rises to 99%+, making it more reliable than cookies for cross-site tracking.

Test Your Canvas Fingerprint — Free, Instant

See your canvas hash, detect noise protection, and get a full privacy score. 32 detectors, zero data collected.

[ CHECK MY CANVAS FINGERPRINT ]

Related Guides