Browser Fingerprint Test

See which browser and device signals this page can read, including screen settings, timezone, Canvas and WebGL. Export a snapshot with the hashes available in your browser; the report does not measure how unique you are among other users.

Runs locally in your browser
Local processing ·
Run the audit to capture a one-time snapshot of signals exposed by this browser.

The combined hash is descriptive, not an account identifier. Reloading or changing browser settings may change it.

How to run a browser fingerprint audit

The audit reads the signals a web page can collect from your browser — user agent, language, timezone, screen and viewport, CPU and memory hints, Canvas, WebGL and privacy switches — and packs them into one JSON report with two SHA-256 hashes.

Nothing the audit reads leaves the page: it uploads nothing, and a run still completes with the network switched off. No cookie, no storage entry and no account is written, so the report exists only until you reload or close the tab.

  1. Press Collect signals. Nothing has to be pasted and no file has to be uploaded.
  2. Read the tiles first: reported signal fields, high-entropy groups (Canvas, WebGL, memory, CPU), language count and the first characters of the combined hash.
  3. Open the JSON report when you need exact values: user agent, platform, languages, timezone and offset, screen and viewport, hardware hints, Do Not Track, cookie flag, WebGL vendor and renderer, canvas hash, combined hash.
  4. Press Copy or Download to keep the snapshot; the download is called browser-signal-report.json.
  5. Press Clear, change one browser setting and run again — resizing the window alone changes the combined hash, because the viewport belongs to the snapshot.

What the report contains

Signals read without any permission prompt

The report carries the user-agent string, interface language and full language list, platform, IANA timezone and UTC offset, screen and viewport dimensions with pixel ratio and colour depth, the CPU thread count the browser exposes, the device memory class (Chromium only, null elsewhere), touch points, the Do Not Track flag (often null in current browsers), the cookie-enabled flag, and the WebGL vendor and renderer strings.

Canvas is measured, not kept: a 220×40 sample with text and a coloured block is drawn, hashed with SHA-256 through Web Crypto, and only the digest ends up in the report. The combined hash works the same way over the JSON fields above — the raw pixel data never reaches the report.

What the two hashes mean

Two runs in a row in the same window return the same hashes, and a second browser session opened with the same window size reproduced the identical combined hash in testing. Resize the window and the combined hash changes while the canvas hash stays the same, because the viewport is part of the snapshot: the digest describes one specific snapshot, not a permanent device ID.

Both values are local digests without a database behind them. The page cannot tell you how many other visitors share your signals, so read a match as “same browser configuration and window” and a mismatch as “something changed”.

What the audit cannot see

It reads nothing that needs another permission and nothing outside JavaScript: no font list, no audio or Web Audio fingerprint, no WebRTC or local-IP discovery, no battery or storage-quota probing, no HTTP headers a server would see, no user-agent client hints and no extension inventory.

Canvas and WebGL depend on the GPU and driver, memory figures are rounded by the browser, and fields such as Do Not Track or device memory can be missing entirely. Use the report to compare your own profiles and settings, not as a score of how anonymous you are.

Recent tools: