本文收录于 GitHub 日问: DailyQuestion,内含大厂内推机会、面经大全及若干面试题,每天学习五分钟,一年进入大厂中。
大厂面经大全
大厂内推
由于不同的系统显卡绘制 canvas 时渲染参数、抗锯齿等算法不同,因此绘制成图片数据的 CRC 校验也不一样。
function getCanvasFp () {
const canvas = document.getElementById('canvas')
const ctx = canvas.getContext('2d')
ctx.font = '14px Arial'
ctx.fillStyle = '#ccc'
ctx.fillText('hello, shanyue', 2, 2)
return canvas.toDataURL('image/jpeg')
}
因此根据 canvas 可以获取浏览器指纹信息。
绘制 canvas,获取 base64 的 dataurl
对 dataurl 这个字符串进行 md5 摘要计算,得到指纹信息
但是对于常见的需求就有成熟的解决方案,若在生产环境使用,可以使用以下库
fingerprintjs2
它依据以下信息,获取到浏览器指纹信息
canvas
webgl
UserAgent
AudioContext
对新式 API 的支持程度等
requestIdleCallback(function () {
Fingerprint2.get((components) => {
const values = components.map((component) => component.value)
const fp = Fingerprint2.x64hash128(values.join(''), 31)
})
})
简答
根据 canvas 可以获取浏览器指纹信息
绘制 canvas,获取 base64 的 dataurl
对 dataurl 这个字符串进行 md5 摘要计算,得到指纹信息
若在生产环境使用,可以使用 fingerprintjs2
更多面试
【字节-视频架构组-前端】头条架构组招人了内含自测题
【美团】什么是防抖和节流,他们的应用场景有哪些
【美团】如何获取一个进程的内存并监控
关注我
我是山月,正致力于每天用五分钟能够看完的简短答案回答一个大厂高频面试题,可添加我的微信 shanyue94 进行交流。
欢迎关注公众号【互联网大厂招聘】,定时推送大厂内推信息及面试题简答,每天学习五分钟,半年进入大厂中
关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[头条:如何获取浏览器指纹信息]http://www.zyiz/tech/detail-143801.html