A javascript library for browser fingerprinting.
Simply include imprint.min.js
in your HTML page. It has no other dependencies.
<script type="text/javascript" src="imprint.min.js"></script>
To create a fingerprint, instantiate a new instance of the ImprintJs
class and call getFingerprint
passing in a list of tests you wish to run. The getFingerprint
method returns a javascript Promise which once all tests have run, returns the generated fingerprint.
<script type="text/javascript">
var browserTests = [
"audio",
"availableScreenResolution",
"canvas",
"colorDepth",
"cookies",
"cpuClass",
"deviceDpi",
"doNotTrack",
"indexedDb",
"installedFonts",
"language",
"localIp",
"localStorage",
"pixelRatio",
"platform",
"plugins",
"processorCores",
"screenResolution",
"sessionStorage",
"timezoneOffset",
"touchSupport",
"userAgent",
"webGl"
];
imprint.test(browserTests).then(function(result){
console.log(result);
});
</script>
Out of the box, ImprintJS comes with the following tests
If you’d like to add your own custom test, you can register a new test like so
imprint.registerTest("testAlias", function(){
return new Promise(function(resolve) {
var value = ""; // Some code to perform a test
return resolve(value);
});
});
All tests must have an alias, and a factory method that creates a javascript Promise that performs the actual test. We use promises to allow for async tests. On completion, the promise should always resolve. If a value cannot be determined, simply resolve with an empty string.
ImprintJS is based heavily on code from a number of libraries, namely
ImprintJS logo modified from fingerprint icon by Lloyd Humphreys from the Noun Project
Author: mattbrailsford
Live Demo: https://mattbrailsford.github.io/imprintjs/default.html
GitHub: https://github.com/mattbrailsford/imprintjs
#javascript #programming