Browser Fingerprint

by fabiocicerchia

HTML

<script src="http://www.myersdaily.org/joseph/javascript/md5.js"></script>

JavaScript

var SEP   = '|';
var ua    = window.navigator.userAgent.toLowerCase();
var opera = ua.indexOf('opera') >= 0 || ua.indexOf('opr') >= 0;
var ie    = ua.indexOf('msie') >= 0 && !opera;

/**
 *
 */
function activeXDetect(componentClassID) {
    var e, obj = document.createElement('div'),
        verIEfull = null; // Full IE version [string/null]
    
    try {
        obj.style.behavior = 'url(#default#clientcaps)';
        verIEfull = obj.getComponentVersion('{' + componentClassID + '}', 'componentid').replace(/,/g, '.');
    } catch(e) {};
    
    return verIEfull;
}

/**
 * Remove illegal characters from a string
 *
 * @return string
 */
function stripIllegalChars(value) {
    return value.replace(/[\n\/\\]/g, '');
}

/**
 * Get filename from a full path string.
 * 
 * @return string
 */
function baseName(tempFileName) {
    return tempFileName.replace(/.*[\/\\]/g, '');
}

/**
 * Get the plugins information.
 * 
 * @return string
 */
function fingerprint_software() {
    t       = '';
    isFirst = true;
    
    if (window.navigator.plugins.length > 0) {
        for (i = 0; i < window.navigator.plugins.length; i++) {
            plugin = window.navigator.plugins[i];
            if (isFirst == true) {
                t += baseName(plugin.filename);
                isFirst = false;
            } else {
                t += SEP + baseName(plugin.filename);
            }
        }
    } else if (window.navigator.mimeTypes.length > 0) {
        for (i = 0; i < window.navigator.mimeTypes.length; i++) {
            mimeType = window.navigator.mimeTypes[i];
            if (isFirst == true) {
                t += mimeType.type;
                isFirst = false;
            } else {
                t += SEP + mimeType.type;
            }
        }
    } else if (ie) {
        components = new Array(
            '7790769C-0471-11D2-AF11-00C04FA35D02', '89820200-ECBD-11CF-8B85-00AA005B4340',
            '283807B5-2C60-11D0-A31D-00AA00B92C03',...