获取浏览器的唯一指纹

这个也是使用的别人的插件:Fingerprint2

代码如下:

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>Fingerprint2 TEST</title>
    <style>
        body {
            color: #555;
        }
        
        #info {
            font-size: 12px;
        }
        
        #control span {
            color: #333;
            margin-left: 10px;
        }
    </style>
</head>

<body>
    <!-- <div id="info">
    <p>Fingerprint2 Github: <a href="https://github.com/Valve/fingerprintjs2" target="_blank">https://github.com/Valve/fingerprintjs2</a>
    </p>
    <p>纯前端实现的浏览器指纹采集器,通过获取浏览器中所有能获取到的信息(部分通过base64转成String),最后生成出md5,用于该用户在该设备上的唯一标识码,官方宣称准确度高达99.5%</p>
</div> -->
    <div id="control">
        <button onclick="start()">获取指纹</button>
        <!-- <span>userAgent:</span><input type="checkbox" id="userAgent" checked="checked">
    <span>fonts:</span><input type="checkbox" id="fonts" checked="checked">
    <span>fontsFlash:</span><input type="checkbox" id="fontsFlash" checked="checked">
    <span>canvas:</span><input type="checkbox" id="canvas" checked="checked">
    <span>webgl:</span><input type="checkbox" id="webgl" checked="checked">
    <span>audio:</span><input type="checkbox" id="audio" checked="checked">
    <span>enumerateDevices:</span><input type="checkbox" id="enumerateDevices" checked="checked"> -->
    </div>
    <div id="view">
    </div>
    <script src="https://cdn.staticfile.org/fingerprintjs2/2.1.0/fingerprint2.min.js"></script>
    <script>
        function start() {
            const start = new Date().getTime();
            let view = document.querySelector('#view');
            view.innerHTML = '';
            let excludes = {
                userAgent: true,
                audio: true,
                enumerateDevices: true,
                fonts: true,
                fontsFlash: true,
                webgl: true,
                canvas: true
            };
            // if (!document.querySelector('#userAgent').checked) {
            //     excludes.userAgent = true;
            // }
            // if (!document.querySelector('#audio').checked) {
            //     excludes.audio = true;
            // }
            // if (!document.querySelector('#enumerateDevices').checked) {
            //     excludes.enumerateDevices = true;
            // }
            // if (!document.querySelector('#fonts').checked) {
            //     excludes.fonts = true;
            // }
            // if (!document.querySelector('#fontsFlash').checked) {
            //     excludes.fontsFlash = true;
            // }
            // if (!document.querySelector('#webgl').checked) {
            //     excludes.webgl = true;
            // }
            // if (!document.querySelector('#canvas').checked) {
            //     excludes.canvas = true;
            // }
            let options = {
                excludes: excludes
            }
            console.log(options)
            Fingerprint2.get(options, function(components) {
                // 参数
                const values = components.map(function(component) {
                    return component.value
                });
                // 指纹
                const murmur = Fingerprint2.x64hash128(values.join(''), 31);
                view.innerHTML += '<p>指纹 : ' + murmur + '</p>';
                view.innerHTML += '<p>消耗 : ' + (new Date().getTime() - start) + ' 毫秒</p>';
                view.innerHTML += '<p>使用的参数 : </p>';
                for (const c of components) {
                    view.innerHTML += '<p>' + c.key + ' : ' + c.value + '</p>';
                }
            });
        }
    </script>
</body>

</html>

测试地址:http://kuwen10002.xyz/static/web/test/Fingerprint2.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值