WebTools

307 Useful Tools & Utilities to make life easier.

Browser Fingerprint Audit

Analyze your browser's unique fingerprint and identify potential privacy leaks.

Uniqueness Score

This score represents how unique your browser looks compared to other users. A higher score means you are easier to track.

System Information
User Agent:
Platform:
Language:
Hardware & Screen
Screen Resolution:
Color Depth:
CPU Cores:
Analysis is performed locally in your browser.
Analyzing browser environment...

Demystifying the Browser Fingerprint Audit

Modern web browsers broadcast a vast array of subtle configuration details, hardware specifications, and environmental settings every time you visit a webpage. When pieced together, these distinct data points form what is known as a Browser Fingerprint. The Browser Fingerprint Audit tool is engineered to analyze these data points directly within your browser instance, demonstrating exactly how identifiable your setup is across the web.

This utility utilizes Alpine.js to seamlessly query the window and navigator objects. By compiling these hardware and software traces, it calculates a uniqueness score that reflects how distinctive your browser session appears to third-party trackers.

How the Fingerprint Data is Harvested

The audit investigates four primary categories of your browsing environment. Because the analysis occurs strictly client-side using JavaScript, the tool inspects the precise variables that advertising networks and security platforms monitor.

  • System Information: The script reads your navigator.userAgent to determine your browser and operating system version. It also captures your navigator.platform (such as Win32 or MacIntel), your preferred navigator.language, and utilizes the Intl.DateTimeFormat().resolvedOptions().timeZone method to pinpoint your exact timezone.
  • Hardware Specifications: Your physical device capabilities leave a trail. The tool inspects your display resolution by combining window.screen.width and window.screen.height. It also checks your display's window.screen.colorDepth and attempts to count your CPU cores via the navigator.hardwareConcurrency property.
  • Rendering Profiles (Canvas & Audio): To identify subtle variations in how your graphics hardware and drivers render content, the tool draws a hidden 2D Canvas element containing specific text ("Hello, world!") and colored rectangles. It then converts this canvas into a Base64 data URL and hashes it using the window.crypto.subtle.digest (SHA-256) API. A similar process occurs for audio, where it initializes an AudioContext and hashes the combined output of its sampleRate and initial state.
  • Privacy Toggles: The tool verifies whether you have enabled the Do Not Track header by checking if navigator.doNotTrack === "1", and confirms whether standard cookies are permitted via navigator.cookieEnabled.

The Uniqueness Score Algorithm

Once the audit retrieves these parameters, it computes a percentage-based Uniqueness Score. A higher score signifies that your browser configuration is highly unique and thus easier to track. The scoring logic functions as follows:

The algorithm establishes a baseline score of 20 points. It then applies several conditional modifiers based on your specific setup:

  1. If your User Agent string contains the word "Mobile", it adds 10 points, as specific mobile setups can sometimes narrow down the device model.
  2. If your primary screen width exceeds 1920 pixels (e.g., ultrawide or 4K monitors), it adds 15 points because high-resolution displays are statistically less common than standard standard screens.
  3. If your browser is not actively broadcasting a "Do Not Track" signal (where doNotTrack !== "1"), it adds an aggressive 20 points.

Finally, to account for minute, unpredictable environmental variations not explicitly categorized, the script introduces a minor randomized variance of up to 19 points using Math.floor(Math.random() * 20). The final result is capped at a maximum of 100%. The resulting score dictates the visual indicator: scores below 40% appear green (safe/common), scores between 40% and 69% display as yellow (moderate), and 70% or higher trigger a red (highly unique) warning.

A Practical Fingerprint Example

Let’s examine how the audit processes a specific device configuration. Suppose you run the audit from a high-end desktop gaming PC without Do Not Track enabled.

Input Parameters:

  • User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)... (Does not contain "Mobile")
  • Resolution (screen.width): 2560 (Greater than 1920)
  • Do Not Track: unspecified (Not equal to "1")

Step-by-Step Score Calculation:

  • The calculation starts at the baseline of 20.
  • The User Agent does not contain "Mobile", so 0 points are added (Total: 20).
  • The screen width (2560) is strictly greater than 1920, adding 15 points (Total: 35).
  • The Do Not Track signal is disabled, adding 20 points (Total: 55).
  • The script applies the environmental variance modifier. Let's assume the random generation yields 12 points (Total: 67).

Result: The final uniqueness score evaluates to 67%. Because this score is below 70 but greater than 39, the progress bar will dynamically render in a yellow warning color using the bg-warning CSS class.

Frequently Asked Questions

Why does the Canvas hash differ across different machines using the same browser?

Even if two users are running the exact same version of Chrome, the underlying operating system, graphics card architecture, installed fonts, and sub-pixel anti-aliasing techniques alter how the 2D canvas renders text and shapes. When the toDataURL() method extracts the image data, these microscopic pixel differences result in completely distinct SHA-256 hashes.

Why do I get a slightly different uniqueness score each time I run the audit?

The uniqueness scoring algorithm intentionally incorporates a slight variance modifier (between 0 and 19 points) using Math.random(). This design choice simulates the unpredictable nature of external fingerprinting scripts, which often factor in fluctuating network latency or dynamic browser states that shift between page reloads.

How is the hardware concurrency measured, and can it be bypassed?

The tool reads the navigator.hardwareConcurrency property, which reveals the number of logical processors available to run threads on your device. While highly useful for tracking, privacy-focused browsers like Tor or Brave frequently spoof this value (often capping or standardizing it) to prevent it from being used as a reliable identifier.

Contact

Missing something?

Feel free to request missing tools or give some feedback using our contact form.

Contact Us