Browser Fingerprint Viewer
See the signals your browser exposes for fingerprinting. Educational privacy tool — nothing is sent to any server.
A fingerprint canvas draws standardized text and shapes; the resulting pixel data is hashed to produce a near-unique device identifier. The hash below is unique to your GPU, driver, and rendering stack.
SHA-256 hash of canvas pixel data:
WebGL exposes the GPU vendor and renderer strings, which are highly unique across device models. These are read via WEBGL_debug_renderer_info extension.
How to reduce your browser fingerprint and protect your privacy online.
What Is Browser Fingerprinting?
Browser fingerprinting is a tracking technique that identifies users without storing any data on their device. Instead of a cookie, it reads dozens of browser and hardware attributes — screen resolution, installed fonts, GPU model, language, timezone, and more — and combines them into a unique hash called a fingerprint. Because most people have different combinations of these attributes, the resulting fingerprint can be 90-99% unique across the global user population.
Unlike cookies, fingerprints cannot be cleared by deleting browsing history. They persist across private browsing windows. They even survive VPNs, because a VPN only changes your IP address, not your hardware or browser configuration. This makes browser fingerprinting a powerful — and controversial — tracking technique.
How This Viewer Works
This tool collects the same signals that commercial fingerprinting libraries (like FingerprintJS, Amplitude, or Amplitude) use, then displays them to you in a readable format. Everything happens locally in your browser's JavaScript engine — no data is sent anywhere. You can verify this by opening browser DevTools (F12), going to the Network tab, and confirming there are no outbound requests while the tool runs.
Signal Categories
- Navigator signals — user agent string, browser language, platform, hardware concurrency (CPU core count), device memory, cookie enabled, Do Not Track preference, installed plugins.
- Screen signals — screen width/height, color depth (bits per pixel), device pixel ratio (detects HiDPI/Retina displays), available screen dimensions.
- Environment signals — timezone (Intl API), system language list, touch support (max touch points), session storage and local storage availability, IndexedDB support.
- Canvas fingerprint — draws text and geometric shapes on a hidden canvas, reads the resulting pixel data, and computes a SHA-256 hash. GPU rendering differences produce slightly different pixels across devices.
- WebGL fingerprint — reads the GPU vendor and renderer strings via the WEBGL_debug_renderer_info extension. Highly unique: a specific laptop model with a specific GPU driver produces a specific renderer string.
Understanding Entropy
Entropy, measured in bits, quantifies how identifying each signal is. A signal with 1 bit of entropy divides users into two equal groups (like a coin flip). A signal with 8 bits divides users into 256 groups. A screen resolution of 1920x1080 is very common, so it has low entropy. A GPU renderer string like "ANGLE (NVIDIA GeForce RTX 4090 Direct3D11 vs_5_0 ps_5_0)" is relatively rare, giving it high entropy. Summing entropy across all signals gives an estimate of how uniquely identifiable a browser is overall. A typical modern browser scores 15-20 bits, meaning it is unique among tens of thousands of users.
Canvas Fingerprinting Explained
Canvas fingerprinting exploits the fact that different hardware and software configurations render the same drawing instructions differently. The differences are in sub-pixel anti-aliasing, font hinting, color blending, and GPU rasterization. This tool draws a standardized set of text (including emoji and special characters), rectangles, arcs, and gradients on a hidden 200×50 canvas, then reads the full pixel data with getImageData() and hashes it with the Web Crypto API's SHA-256. The resulting 64-character hex string is your canvas fingerprint.
WebGL Fingerprinting
WebGL exposes two strings that identify the GPU: the renderer (the GPU model and driver version, e.g., "ANGLE (Intel Iris Plus Graphics 655 Direct3D11 vs_5_0 ps_5_0)") and the vendor (e.g., "Google Inc. (Intel)"). These are read via the WEBGL_debug_renderer_info extension. Some privacy-conscious browsers (Firefox with Resist Fingerprinting enabled, Tor Browser) return generic strings here to reduce uniqueness.
How to Protect Your Privacy
Complete fingerprint prevention is difficult without degrading browser usability, but several approaches help significantly. The Tor Browser standardizes most fingerprint signals so all Tor users look identical. Firefox with privacy.resistFingerprinting enabled rounds screen dimensions, randomizes canvas reads, and hides GPU info. Brave Browser adds random noise to canvas and WebGL reads each session. Browser extensions like CanvasBlocker intercept canvas reads and return slightly randomized data. None of these are perfect — a determined tracker can still narrow down users using timing, behavioral, and network signals — but they raise the cost significantly.
Legitimate Uses of Fingerprinting
Not all fingerprinting is malicious. Banks and payment processors use it as an additional signal for fraud detection — a login from an unusual device combination is more suspicious than one from a familiar fingerprint. Security products use fingerprinting for passwordless device recognition. Game anti-cheat systems use it to identify ban-evading accounts. CDNs like Cloudflare use bot signals (including fingerprint-like attributes) to distinguish real users from automated scrapers. The same technology that enables invasive ad tracking also powers legitimate fraud prevention.