用Javascript在浏览器端能实现指纹识别吗

JavaScript027

用Javascript在浏览器端能实现指纹识别吗,第1张

您好,浏览器端暂时无法进行指纹识别的操作,因为浏览器的特性,为了防止恶意网站访问用户数据,所以浏览器端能做到的操作极其有限,例如人脸识别,在PC端、iOS端、Android端有,但是移动端没有,就是因为很多信息属于用户私密信息,尽量不让浏览器可以访问到。但是在iOS和安卓上,可以通过H5跟原生交互的方式,在App中调用原生的指纹识别,如果是纯浏览器端,暂时没有这个操作。

第一次通过平台进入A应用时,我会把A应用的标识存放在sessionStorage里,key为appInfo,然后A未关闭,我又进入了B应用,此时,我也要把B应用的标识存放在sessionStorage里,key也为appInfo,再进入A应用时,此时appInfo已被覆盖为B的标识,拿不到A的标识了。

```JavaScript <!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>     <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 = {}         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}         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> ```