canvas教程

基于HTML Canvas实现“指纹识别”技术,canvas指纹

字号+ 作者:H5之家 来源:H5之家 2016-08-16 10:01 我要评论( )

基于HTML Canvas实现“指纹识别”技术,canvas指纹。基于HTML Canvas实现“指纹识别”技术,canvas指纹 作者:zhanhailiang 日期:2015-01-31 说明 所谓指纹识别

基于HTML Canvas实现“指纹识别”技术,canvas指纹
作者:zhanhailiang 日期:2015-01-31 说明

所谓指纹识别是指为每个设备标识唯一标识符(以下简称UUID)。诸如移动原生的APP都可以通过调用相关设备API来获取相应的UUID。但是浏览器内WebAPP受限于运行环境无法直接防部设备API,此时需要通过其它方法来设置UUID。

基于持久化Cookie生成UUID 原理

当用户访问一个网站时,网站可以在用户当前的浏览器Cookie中种入含有UUID的Cookie,并通过这个信息将用户所有行为(浏览了哪些页面?搜索了哪些关键字?对什么感兴趣?点了哪些按钮?用了哪些功能?看了哪些商品?把哪些放入了购物车等等)关联起来。

实现 function rand(len) { var hex = "0123456789abcdef", str , index = 0; for (len = len || 32; len > index; index++) { str .random()) % hex.length); } return str; } _" + rand(); // 写持久化cookie,两年后过期 // setcookie('uuid', uuid, 732 * 24 * 60 * 60); 弊端

之后就可以使用UUID来实现用户追踪技术,方便后续的数据分析工作。

但是随着互联网对个人隐私的重视,Cookie越来越不受待见。不少安全工具甚至是浏览器都开始允许或引导用户关闭Cookie功能,比如很多主流浏览器都有一个“隐私模式”功能。这样,网站就很难通过Cookie追踪用户行为。但仍然有一些方法可以让网站去追踪每一个访问者的行为,比如通过flash cookie的方式也可以达到唯一标识和追踪的目的。

基于HTML Canvas实现“指纹识别”技术 原理

基于Canvas绘制特定内容的图片,使用canvas.toDataURL()方法返回该图片内容的base64编码字符串。对于PNG文件格式,以块(chunk)划分,最后一块是一段32位的CRC校验,提取这段CRC校验码便可以用于用户的唯一标识。

测试结果表明,同一浏览器访问该域时生成的CRC校验码总是不变。可以简单理解为同样的HTML Canvas元素绘制操作,在不同的操作系统不同的浏览器上,产生的图片内容其实是不完全相同的。出现这种情况可能是有几个原因:

实现 function bin2hex(s) { i, l, o , n; s ; for (i = 0, l = s.length; i < l; i++) { n = s.charCodeAt(i) .toString(16); o 0' + n : n; } return o; } function getUUID(domain) { var canvas = document.createElement('canvas'); var ctx = canvas.getContext("2d"); var txt = domain; ctx.textBaseline = "top"; ctx.font = "14px 'Arial'"; ctx.textBaseline = "tencent"; ctx.fillStyle = "#f60"; ctx.fillRect(125,1,62,20); ctx.fillStyle = "#069"; ctx.fillText(txt, 2, 15); ctx.fillStyle = "rgba(102, 204, 0, 0.7)"; ctx.fillText(txt, 4, 17); var b64 = canvas.toDataURL().replace("data:image/png;base64,",""); var bin = atob(b64); )); return crc; } console.log(getUUID("")); 优点

基于HTML Canvas生成的UUID可以有效的用于用户追踪技术,目前并没有有效的对抗方案。

更多阅读

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Android实战技巧之二十九:画布Canvas,androidcanvas

    Android实战技巧之二十九:画布Canvas,androidcanvas

    2016-08-16 15:04

  • 图形.动画.与游戏开发》基瑞

    图形.动画.与游戏开发》基瑞

    2016-08-15 18:01

  • 画板的尺寸与实际显示尺寸【站长博客网】

    画板的尺寸与实际显示尺寸【站长博客网】

    2016-08-13 10:01

  • html5的canvas方法使用指南

    html5的canvas方法使用指南

    2016-08-12 14:03

网友点评