• FingerprintJS


    FingerprintJS 是一个快速的浏览器指纹库,纯 JavaScript 实现,没有依赖关系。默认情况下,使用 Murmur Hash 算法返回一个32位整数。Hash 函数可以很容易地更换

    FingerPrint 即我们常说的指纹识别,使用手指和拇指前端的纹理按下的纹印来鉴定身份。指纹是鉴别身份的一种可靠的方法,因为每个人的每个指头上的纹理排列各不相同而且不因发育或年龄而改变。

      什么是浏览器指纹? 

      其实这是 Electronic Frontier Foundation 研究出来的技术,可以匿名识别 Web 浏览器,准确率高达94%。通过查询浏览器的代理字符串,屏幕色深,语言,插件安装与支持的 MIME 类型,时区偏移量和其他功能,如本地存储和会话存储等等,然后这些值通过散列函数传递产生指纹,不需要通过 Cookie 存储就可以识别浏览器。

    通过检测浏览器安装的插件来识别是浏览器指纹重要的特征,然后在 IE 浏览器中,不可能只去检测浏览器列表和它们的 MIME 类型,因此需要设置 ie_activex: true 选项,这样 FingerprintJS 将会检测一下插件:

    • Adobe Reader
    • Adobe Flash Player
    • Apple QuickTime
    • Real player (all versions)
    • Shockwave player
    • Windows Media Player
    • Microsoft Silverlight
    • Skype ClickToCall 

      Bower

      1
      bower install fingerprint

      NPM

      1
      npm install fingerprintjs

      Ruby-on-Rails

      如果是 Rails 项目,添加下面代码到 Gemfile 中:

      1
      gem 'fingerprintjs-rails'

      然后运行:

      1
      bundle install

      就可以把文件添加到 sprockets 了:

      1
      //= require fingerprint

      手动安装

      把 fingerprint.js 文件拷贝到项目中。

      调用方法

      1
      var fingerprint = new Fingerprint().get();

      如果你想使用 Canvas FingerPrinting,则如下调用:

      1
      var fingerprint = new Fingerprint({canvas: true}).get();

      如果你想使用屏幕分辨率计算指纹,则需如下调用:

      1
      var fingerprint = new Fingerprint({screen_resolution: true}).get();

      使用自定义的哈希函数

      1
      2
      var my_hasher = new function(value, seed){ return value.length % seed; };
      var fingerprint = new Fingerprint({hasher: my_hasher}).get();

      或者直接传递方法:

      1
      2
      var my_hasher = new function(value, seed){ return value.length % seed; };
      var fingerprint = new Fingerprint(my_hasher).get();
  • 相关阅读:
    类加载机制
    PTA(BasicLevel)-1094 谷歌的招聘
    PTA(BasicLevel)-1023 组个最小数
    异构图神经网络笔记-Heterogeneous Graph Neural Network(KDD19)
    PTA(BasicLevel)-1014 福尔摩斯的约会
    PTA(BasicLevel)-1013 数素数
    PTA(BasicLevel)-1012 数字分类
    PTA(BasicLevel)-1010 一元多项式求导
    PTA(BasicLevel)-1009 说反话
    PTA(BasicLevel)-1008数组元素循环右移问题
  • 原文地址:https://www.cnblogs.com/share901124/p/7998399.html
Copyright © 2020-2023  润新知