Canvas fingerprinting draws hidden graphics and re-reads the raw pixels to collect a stable, device-specific hash; some browsers randomise those pixels to break the signature.
JavaScript can draw text or shapes on an off-screen canvas, then call
toDataURL()
or getImageData()
to read back the exact
pixels. Those pixels encode subtle details of your GPU, driver, fonts and
sub-pixel rendering. Trackers hash them into a high-entropy identifier that
survives state clearing. Privacy-focused browsers disrupt the attack by
randomizing a few bits of the returned pixels, so the
hash is no longer stable between sites and sessions.