fingerprintjs 的使用与说明
来源:互联网 发布:农夫抢购软件怎么样 编辑:程序博客网 时间:2024/06/05 05:45
官网下载地址:下载
一、什么是指纹识别
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
四、使用方法
调用方法
1
var
fingerprint =
new
Fingerprint().get();
如果你想使用 Canvas FingerPrinting,则如下调用:
1
var
fingerprint =
new
Fingerprint({canvas:
true
}).get();
如果你想使用屏幕分辨率计算指纹,则需如下调用:
1
var
fingerprint =
new
Fingerprint({screen_resolution:
true
}).get();
使用自定义的哈希函数
1
2
var
my_hasher =
new
function
(value, seed){
return
value.length % seed; };
var
fingerprint =
new
Fingerprint({hasher: my_hasher}).get();
或者直接传递方法:
1
2
var
my_hasher =
new
function
(value, seed){
return
value.length % seed; };
var
fingerprint =
new
Fingerprint(my_hasher).get();
举例、获取页面PV、UV,IP内容:
<script type="text/javascript" src="${base}/js/fingerprint.js"></script>
2、配合jQuery使用
<script> $(document).ready(function(){ //页面访问统计 var fingerprint = new Fingerprint().get(); $.ajax({ type: "GET", url: base+"/statistics", data: { finger:fingerprint,type:1}, dataType: "json", success: function(data){ } }); });</script>
3、调用后台代码,保存指纹信息
/** * 写入统计详情 */@RequestMapping("/statistics")public void writeStatistics(StatisticsDetails statisticsDetails, HttpServletRequest request){String realIp = null;String ip = request.getHeader("X-Forwarded-For");if (ip == null) { realIp = request.getRemoteAddr(); }else{if(!StringUtils.isEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){//多次反向代理后会有多个ip值,第一个ip才是真实ipint index = ip.indexOf(",");if(index != -1){realIp = ip.substring(0,index);}else{realIp = ip;}}} try{ statisticsDetails.setIp(realIp); statisticsDetails.setTime_stamp(new Date());statisticsDetailsService.statistics(statisticsDetails); }catch(Exception e){Logger.write(e);}}
0 0
- fingerprintjs 的使用与说明
- Encache的使用与说明
- Encache的使用与说明
- scrollView的使用与说明
- IS_ERR()的使用与说明
- LayoutInflater的使用与说明
- 工作邮件的使用建议与说明
- this指针的详细说明与使用
- Oracle 序列的使用与说明
- CFileDialog类的使用与说明
- Log4j的配置说明与使用
- slab分配器的说明与使用
- Hibernate 配置文件的详细使用与说明
- atoi函数的说明与使用
- getch函数的使用与说明
- system函数的使用与说明
- itoa函数的使用与说明
- iOS 系统定位的说明与使用
- boolean equal(Object o1,Object o2)
- h.264编码中level是什么含义,值的大小决定了什么?
- 面试题62:序列化二叉树
- 字节(byte)、二进制、字节流、字符流相关概念分析
- hdu 1847(Good Luck in CET-4 Everybody!——巴什博弈)
- fingerprintjs 的使用与说明
- Android自定义view01-ScrollView嵌套GridView
- 单表 多表 树形表 一对多 springmvc spring mybatis SSM 后台框架
- 史上最全github使用方法:github入门到精通
- Android静态安全检测 -> 主机名弱校验
- JSF导航
- sitemesh3-springMVC配置
- TelephonyManager的基本用法,只是看到了玩一下
- VisualVM 远程监控jmx程序