FingerprintJS 是一個快速的瀏覽器指紋庫,純 JavaScript 實現(xiàn),沒有依賴關(guān)系。默認(rèn)情況下,使用 Murmur Hash 算法返回一個32位整數(shù)。Hash 函數(shù)可以很容易地更換。
什么是指紋識別
FingerPrint 即我們常說的指紋識別,使用手指和拇指前端的紋理按下的紋印來鑒定身份。指紋是鑒別身份的一種可靠的方法,因為每個人的每個指頭上的紋理排列各不相同而且不因發(fā)育或年齡而改變。
什么是瀏覽器指紋?
IE瀏覽器的識別
通過檢測瀏覽器安裝的插件來識別是瀏覽器指紋重要的特征,然后在 IE 瀏覽器中,不可能只去檢測瀏覽器列表和它們的 MIME 類型,因此需要設(shè)置 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
復(fù)制代碼
NPM
-
npm install fingerprintjs
復(fù)制代碼
Ruby-on-Rails
如果是 Rails 項目,添加下面代碼到 Gemfile 中:
-
gem 'fingerprintjs-rails'
復(fù)制代碼
然后運行:
-
bundle install
復(fù)制代碼
就可以把文件添加到 sprockets 了:
-
//= require fingerprint
復(fù)制代碼
手動安裝
把 fingerprint.js 文件拷貝到項目中。
調(diào)用方法
-
var fingerprint = new Fingerprint().get();
復(fù)制代碼
-
var fingerprint = new Fingerprint({canvas: true}).get();
復(fù)制代碼
如果你想使用屏幕分辨率計算指紋,則需如下調(diào)用:
-
var fingerprint = new Fingerprint({screen_resolution: true}).get();
復(fù)制代碼
使用自定義的哈希函數(shù)
-
-
var my_hasher = new function(value, seed){ return value.length % seed; };
-
var fingerprint = new Fingerprint({hasher: my_hasher}).get();
復(fù)制代碼
或者直接傳遞方法:
-
-
var my_hasher = new function(value, seed){ return value.length % seed; };
-
var fingerprint = new Fingerprint(my_hasher).get();
復(fù)制代碼