网页获取用户UUID方法

作者:小爝
链接:https://www.zhihu.com/question/51410927/answer/125735195
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

泻药,这个一般用作给用户标识唯一标记用,在广告领域作用比较大,恰巧我还是有点了解。

直接js获取是没戏了,没这个api,一般的做法都是收集用户信息然后做一个hash生成。

具体收集哪些用户指纹信息,帮你简单列举一下,整个ua的值,是否开启localstorage,屏幕分辨率,比如你本地安装的插件(ie非ie区别对待,插件属性不同),计算机硬件信息,是否支持一些新浏览器的特性,比如本地有安装indexdb,ie下还有个addBehavior可以搜索下用法,大概收集好这些信息之后,如果觉得还不放心,如果支持canvas的浏览器,你可以生成一个固定的canvas图形,但是由于终端不同,最后图形的细节还是有很大差别,参见:
Canvas Fingerprinting 里面的gif图,最后再转成字符。

因为这些信息都是经常不变的,所以完全可以当成是一个客户端指纹信息了。

然后把这些所有信息做一个hash运算,这里有一个库就是这个原理编写的,代码很少:

fingerprintjs/fingerprint.js at master · Valve/fingerprintjs · GitHub

专门生成用户指纹的js,他的hash算法你可以自己写,默认选择的是MurmurHash3算法,是redis实现hash的2种算法之一,特点是高性能行运算,低概率碰撞,也是常用的负载均衡算法。自己去google吧,Austin Appleby发明的很出名的一个算法,各种语言都有实现 。。

大概浏览器端生成uuid就是这么个做法了。

转载于:https://my.oschina.net/colinadmin/blog/1934409

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值