Canvas Fingerprinting: How It Works and What It Reveals

Canvas fingerprinting measures how a browser draws a chosen image. A script renders text or shapes, reads the output and may calculate a hash. Small differences in the rendering process can become signals for comparing browser environments.

The useful question is what produced that output. A browser engine, font, operating-system component or privacy setting can affect it. A Canvas hash is a result of a particular measurement.

Learning objectives

After reading this article you will be able to:

  • Follow the drawing, readback and hashing steps
  • Identify factors that can change Canvas output
  • Compare Canvas readings using the same test

How a Canvas fingerprint is created

The test asks the browser to draw a fixed sample and reads the resulting pixels.

A sample may combine text, shapes, gradients or overlapping colors. The page can read the Canvas output through supported APIs and turn it into a short hash. Comparing hashes is convenient because a pixel-level difference can be difficult to see by eye.

The drawing belongs to the webpage. This measurement does not capture your desktop or require the page to see other application windows.

Why the same drawing can produce different values

Rendering depends on the software and resources used to produce the image.

  • Browser engine: drawing and text implementation can differ between browsers and versions.
  • Fonts: available fonts and fallback choices change text metrics and pixels.
  • Graphics and operating system: drivers and rendering components can affect output.
  • Privacy settings: a browser may restrict readback, standardize data or add noise.

The same computer can therefore produce different results in two browsers. Conversely, two similar environments can produce the same result in a limited test.

How to compare Canvas results

Use the same page and sample, then change one condition at a time.

ObservationUseful interpretation
Same hash after a refreshThe measured output repeated in that test
New hash after a browser updateThe rendering path or test behavior may have changed
Different hashes on two websitesThe samples or calculations may differ
Matching hashes in two profilesCheck whether both expose the same real rendering output

To check a managed profile, record its current Canvas mode, refresh the test and then stop and reopen the profile. If you change a setting, repeat the same sequence. Our Multilogin test used this approach to distinguish a deliberate Canvas change from variation between launches.

Why Canvas belongs alongside other signals

Canvas measures actual rendering rather than a reported browser label. Reading it alongside version, fonts and graphics information provides context for a result that would otherwise be just an opaque string.

Interpreting the result

  • Matching output describes this sample; it does not establish a unique person or device.
  • Different websites can calculate different Canvas hashes from the same browser.
  • A blocked or modified result needs interpretation in light of browser protections.

Frequently asked questions

Is a Canvas hash my hardware serial number?

No. It is a digest of a measured output. Software, fonts, settings and the test sample all matter.

Does clearing cookies change Canvas?

Clearing cookies does not normally change the rendering components. Some browser protections may tie randomization to session or site-data lifecycle, so inspect the actual behavior.

Does blocking image downloads stop Canvas fingerprinting?

Canvas can generate drawings locally through script. Blocking downloaded images alone does not necessarily stop that process.

References

Next steps

WebGL fingerprinting and GPU information

Canvas changes and restarts in our Multilogin test

Inspect your current Canvas result