fp

FOSSA Status version license download size

本项目是fingerprintjs/fingerprintjs2的简化和改进版本.

English Version

什么是fp

fp为每一个用户代理(浏览器)生成一个唯一的识别码。fp的生成不依赖cookie,localStorage等浏览器本地存储,而是通过js获取的一系列用户设备的系统配置,硬件信息等生成。

快速开始

点击查看你的fp

如何使用

安装

使用npm:

$ npm install fp3 --save

使用yarn:

$ yarn add fp3

在网页上直接引用:

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/fp3/dist/fp.min.js"></script>

生成fp

使用如下方法生成fp:

<script type="text/javascript">
  ;(async function(){
    alert(await fp);
  })()
</script>

这将会生成一个6位的fp字符串如下:

df3kd0

此字符串的前两位是通过设备硬件信息计算出的设备的fp,对于同一台设备不同浏览器计算出的值是一致的。但是此值有较大概率与其它设备对撞,无法确保唯一性。

字符串中间两位最后两位都是浏览器的fp。区别在于,中间两位更加稳定,不会轻易抖动变化,但仍有一定概率与其它设备对撞。最后两位则更加容易抖动,但其唯一性更好。

在实际使用中,你可以使用substr()函数来提取fp中某个字段。方法如下:

  ;(async function(){
    var fp_device = (await fp).substr(0, 2);  //df in df3kd0
    var fp_browser = (await fp).substr(2, 2); //3k in df3kd0
    var fp_unique = (await fp).substr(4);     //d0 in df3kd0
  })()

进阶使用

获取fp使用的信息

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/fp3/dist/fp.min.js"></script>
<script type="text/javascript">
  ;(async function(){
    console.log(await fp_details);
  })()
</script>

CDN

开源协议

FOSSA Status