严正声明

严正声明:近期有不法份子,伪造我司营业执照跟公章进行行骗活动,对于该行为我司已经提起法律诉讼,请广大网民不要轻信,避免上当受骗。需要核实人员身份以及投诉热线:136-8733-8456,欢迎致电咨询。打款请认准官方唯一收款账号 账户名称:湖南百璋网络科技有限公司 账号:8100 0009 6597 0000 01

湖南百璋网络科技有限公司_网站建设_网站推广_网站优化

网站设计是技术与创意的完美融合!

网站知识

HTML5画布指纹

2021-01-05

Canvas是HTML5 API,用于通过JavaScript中的脚本在网页上绘制图形和动画。

但除此之外,画布还可以用作Web浏览器指纹中的附加熵,并用于在线跟踪。

该技术基于以下事实:同一张画布图像可以在不同的计算机中以不同的方式呈现。发生这种情况有几个原因。在图像格式级别– Web浏览器使用不同的图像处理引擎,图像导出选项,压缩级别,即使最终图像是像素相同的,最终图像也可能会获得不同的校验和。在系统级别–操作系统具有不同的字体,它们使用不同的算法和设置进行抗锯齿和亚像素渲染。

您可以查看Web浏览器是否支持Canvas,并检查此技术是否可以跟踪您。此外,还将进行一些持续的研究,以显示现实生活中画布指纹的独特性和持久性,以及是否在BrowserLeaks数据库中签名(此处未收集任何信息!)。

与其他“浏览器检测”技巧不同,它处理了许多与图形环境有关的OS功能。潜在地,它可以用于识别视频适配器,尤其是如果您将使用WebGL分析,而不仅仅是Canvas 2D上下文。顺便说一句,不同的图形卡驱动程序有时也会影响常规字体的呈现。

这个小巧的GIF动画演示了如何可以从35个不同的用户那里更改画布图像。代码没有更改,但是每个框架都不同:

从数据库摘要中可以看到,到目前为止,我们已经能够收集的唯一图像数为数千。

这是产生像素的JavaScript代码:

//带有小写/大写/标点符号的文本
var txt = “ BrowserLeaks,com <canvas> 1.0” ;
ctx.textBaseline = “ top” ;
//最常见的类型
ctx.font = “ 14px'Arial '” ;
ctx.textBaseline = “字母顺序”;
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); 

    要从画布创建签名,我们必须使用toDataURL()函数从应用程序的内存中导出像素,该函数将返回二进制图像文件的base64编码的字符串。然后我们可以创建此字符串的MD5哈希,甚至从IDAT块中提取CRC校验和,该IDAT块位于每个PNG文件末尾的16到12个字节之间,这就是我们的Canvas Fingerprint。