FingerprintJS 是一個快速的瀏覽器指紋庫,純 JavaScript 實現,沒有依賴關系。默認情況下,使用 Murmur Hash 算法返回一個32位整數。Hash 函數可以很容易地更換。
什么是指紋識別
FingerPrint 即我們常說的指紋識別,使用手指和拇指前端的紋理按下的紋印來鑒定身份。指紋是鑒別身份的一種可靠的方法,因為每個人的每個指頭上的紋理排列各不相同而且不因發育或年齡而改變。
什么是瀏覽器指紋?
其實這是 Electronic Frontier Foundation 研究出來的技術,可以匿名識別 Web 瀏覽器,准確率高達94%。通過查詢瀏覽器的代理字符串,屏幕色深,語言,插件安裝與支持的 MIME 類型,時區偏移量和其他功能,如本地存儲和會話存儲等等,然后這些值通過散列函數傳遞產生指紋,不需要通過 Cookie 存儲就可以識別瀏覽器。
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();
如果你想使用 Canvas FingerPrinting,則如下調用:
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();
您可能感興趣的相關文章