指纹识别方案

1,051 阅读2分钟

一、fingerprintjs

Github 地址: github.com/fingerprint…

Github Star:19.5K

Npm 地址:www.npmjs.com/package/@fi…

Npm Weekly Downloads:273,745

是否可商用:4.0.0 以下版本可以,以上需要付费

4.0.0 版本以下声明 image.png

4.0.0 版本以上费用情况:

image.png

社区使用率:

image.png

1.1 fingerprintjs Demo

1.1.1 下载依赖

npm i @fingerprintjs/fingerprintjs

1.1.2 引入

import FingerprintJS from '@fingerprintjs/fingerprintjs'

1.1.3 使用 获得唯一标识

FingerprintJS.load()
  .then(fp => fp.get())
  .then(result => {
    const visitorId = result.visitorId
    console.log('visitorId: ', visitorId)
  })

1.1.4 结果

Chrome 切换到 Edge 后 visitorId 发生改变

image.png

image.png

fingerprintjs(Chrome)首次打开刷新关闭浏览器重新打开无痕模式切换网络环境
visitorId1d0ee5d03c6995de2af8986c3919e64c1d0ee5d03c6995de2af8986c3919e64c1d0ee5d03c6995de2af8986c3919e64c1d0ee5d03c6995de2af8986c3919e64c1d0ee5d03c6995de2af8986c3919e64c

1.2 结论

综合下来看,推荐使用,其Github star 和 npm 下载量趋势都是 Top 级的,可根据实际费用情况选择 商业版和免费版

二、clientjs

Github地址:github.com/jackspirou/…

Github Star : 1.8k

Npm地址:www.npmjs.com/package/cli…

Npm Weekly Downloads:18,883

是否可商用:Apache-2.0

2.1 clientjs Demo

2.1.1 下载依赖

npm i clientjs

2.1.2 引入

import { ClientJS } from 'clientjs'

2.1.3 使用 获得唯一标识

const client = new ClientJS()
const id = client.getFingerprint()
console.log('id: ', id)

2.1.4 结果

image.png

image.png

clientjs(Chrome)首次打开刷新关闭浏览器重新打开无痕模式切换网络环境
id544086402544086402544086402544086402544086402

2.2 结论

虽然初步测试功能没毛病,但在相同设备相同浏览器环境下,不知其还能否标识唯一用户,还是推荐 使用人数更多的 fingerprintjs