fp
本项目是fingerprintjs/fingerprintjs2的简化和改进版本.
什么是fp
fp为每一个用户代理(浏览器)生成一个唯一的识别码。fp的生成不依赖cookie,localStorage等浏览器本地存储,而是通过js获取的一系列用户设备的系统配置,硬件信息等生成。
快速开始
如何使用
安装
使用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
- jsdelivr:
https://cdn.jsdelivr.net/npm/fp3/dist/fp.min.js
- China:
https://cdn.yimian.xyz/fp/fp.min.js