FingerprintJS 是一个快速的浏览器指纹库,纯 JavaScript 实现,没有依赖关系。默认情况下,使用 Murmur Hash 算法返回一个32位整数。Hash 函数可以很容易地更换。
什么是指纹识别
FingerPrint 即我们常说的指纹识别,使用手指和拇指前端的纹理按下的纹印来鉴定身份。指纹是鉴别身份的一种可靠的方法,因为每个人的每个指头上的纹理排列各不相同而且不因发育或年龄而改变。
什么是浏览器指纹?
IE浏览器的识别
通过检测浏览器安装的插件来识别是浏览器指纹重要的特征,然后在 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
-
bower install fingerprint
复制代码
NPM
-
npm install fingerprintjs
复制代码
Ruby-on-Rails
如果是 Rails 项目,添加下面代码到 Gemfile 中:
-
gem 'fingerprintjs-rails'
复制代码
然后运行:
-
bundle install
复制代码
就可以把文件添加到 sprockets 了:
-
//= require fingerprint
复制代码
手动安装
把 fingerprint.js 文件拷贝到项目中。
调用方法
-
var fingerprint = new Fingerprint().get();
复制代码
-
var fingerprint = new Fingerprint({canvas: true}).get();
复制代码
如果你想使用屏幕分辨率计算指纹,则需如下调用:
-
var fingerprint = new Fingerprint({screen_resolution: true}).get();
复制代码
使用自定义的哈希函数
-
-
var my_hasher = new function(value, seed){ return value.length % seed; };
-
var fingerprint = new Fingerprint({hasher: my_hasher}).get();
复制代码
或者直接传递方法:
-
-
var my_hasher = new function(value, seed){ return value.length % seed; };
-
var fingerprint = new Fingerprint(my_hasher).get();
复制代码