JS: fingerprint
more at: https://github.com/carlo/jquery-browser-fingerprint/blob/master/src/jquery.browser-fingerprint-1.1.js https://github.com/rynr/fingerprint.js hash: http://erlycoder.com/49/javascript-hash-functions-to-convert-string-into-integer-hash- http://werxltd.com/wp/2010/05/13/javascript-implementation-of-javas-string-hashcode-method/#comment-23181
by Marc Chehab
JavaScript
var fingerprint = (function(window, screen, navigator) {
// https://github.com/darkskyapp/string-hash
function checksum(str) {
var hash = 581,
i = str.length;
while (i--) hash = (hash * 33) ^ str.charCodeAt(i);
return hash >>> 0;
}
// http://stackoverflow.com/a/4167870/1250044
function map(arr, fn){
var i = 0, len = arr.length, ret = [];
while(i < len){
ret[i] = fn(arr[i++]);
}
return ret;
}
return checksum([
navigator.userAgent,
[screen.height, screen.width, screen.colorDepth].join('x'),
new Date().getTimezoneOffset(),
!!window.sessionStorage,
!!window.localStorage,
map(navigator.plugins, function (plugin) {
return [
plugin.name,
plugin.description,
map(plugin, function (mime) {
return [mime.type, mime.suffixes].join('~');
}).join(',')
].join("::");
}).join(';')
].join('###'));
}(this, screen, navigator));
document.body.innerHTML = fingerprint;