-
2019-03-15 14:25:13
我用QQ浏览器的谷歌内核和谷歌浏览器打开的值是相同的,用搜狗浏览器的急速内核和谷歌浏览器的值是不同的
同个浏览器的ie内核和急速内核的值是不同的function cans() { var canvas = document.createElement('canvas'); var ctx = canvas.getContext('2d'); var txt = 'http://security.tencent.com/'; 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); var crc = bin2hex(bin.slice(-16, -12)); //var crc = bin.slice(-16,-12); alert(crc); } function bin2hex(str) { var result = ""; for (i = 0; i < str.length; i++) { result += int16_to_hex(str.charCodeAt(i)); } return result; } function int16_to_hex(i) { var result = i.toString(16); var j = 0; while (j + result.length < 4) { result = "0" + result; j++; } return result; }
原文地址:https://blog.csdn.net/javakeffer/article/details/48803165
更多相关内容 -
HTML5+下用js获取设备的唯一识别码和本地数据库的操作
2020-12-18 22:23:06HTML5+下用js获取设备的唯一识别码和本地数据库的操作发布时间:2018-04-24 12:01,浏览次数:1111, 标签:HTMLjs首先获取设备的唯一标识,由于ios审核的阻挡,我现在只是获取它idfa来作为唯一识别码(这个会被重置,...HTML5+下用js获取设备的唯一识别码和本地数据库的操作
发布时间:2018-04-24 12:01,
浏览次数:1111
, 标签:
HTML
js
首先获取设备的唯一标识,由于ios审核的阻挡,我现在只是获取它idfa来作为唯一识别码(这个会被重置,如果idfa不重要的话是可以考虑此方法的),Android就不用多说了
if(ua.match(/iphone\sOS/i) == "iphone os"){//识别设备ios/android var
ASIdentifierManager = plus.ios.importClass("ASIdentifierManager"); var
sharedManager = ASIdentifierManager.sharedManager();
if(sharedManager.isAdvertisingTrackingEnabled()){ var advertisingIdentifier =
sharedManager.advertisingIdentifier(); var idfa =
plus.ios.invoke(advertisingIdentifier,"UUIDString"); return idfa;//获取并返回idfa }
//return device_id; }else{ var device_id = plus.device.uuid.valueOf(); return
device_id.substring(0,15);//获取andriod的uuid }
下面就用js来操作一下本地数据库
deviceinfo.opendb = function(){//创建数据库 return
openDatabase('TEST','1.0',"evaluateairport",2*1024*1024); }; //操作数据的公共方法
deviceinfo.update = function(db,sql,func,funcerr){ if(db&&sql){
db.transaction(function(context){
context.executeSql(sql,[],function(context,result){ func(result);
},function(context,error){ funcerr(error); }); }); } }; var db =
deviceinfo.opendb();//一定要实例此数据库,可以全局使用
接下来是获取拍照或录像的方法
//获取摄像功能 photo 拍照 video 录像 deviceinfo.cameraOrVideo =
function(actionflag,pathname,funsuc,funerr){ if(actionflag){//识别拍照或者录像 var cmr
= plus.camera.getCamera(); if(actionflag == "photo"){ var res =
cmr.supportedImageResolutions[0]; var fmt = cmr.supportedImageFormats[1];
//0格式png 1格式jpg console.log("Resolution: "+res+", Format: "+fmt);
cmr.captureImage( function(imgpath){ funsuc(imgpath); }, function(imgerr){
funerr(imgerr); },//参数配置 其中pathname是图片的路径和名称
{resolution:res,format:fmt,filename:pathname}); }else if(actionflag == "video"){
var vidres = cmr.supportedVideoResolutions[0]; var vidfmt =
cmr.supportedVideoFormats[0]; console.log("Resolution: "+vidres+", Format:
"+vidfmt); cmr.startVideoCapture( function(vidpath){ funsuc(vidpath); },
function(viderr){ funerr(viderr); },//参数配置 其中 pathname是录像文件保存的位置和录像的名称
{resolution:vidres,format:vidfmt,filename:pathname}); } } }
图片压缩
//压缩图片 deviceinfo.compressIMG = function(imgpath,dectpath,funsuc,funerr){
plus.zip.compressImage( { src:imgpath,//源路径 dst:dectpath,//目标路径 format:
'jpg',//图片格式 quality:20,//质量 越小图片质量越差 overwrite:true//是否覆盖 }, function(suc){
funsuc(suc); }, function(filed){ funerr(filed); }); }
-
前端JS获取设备IP地址和唯一标识
2020-12-24 17:43:17获取设备IP地址function getIPs(callback) {var ip_dups = {};//compatibility for firefox and chromevar RTCPeerConnection = window.RTCPeerConnection|| window.mozRTCPeerConnection|| window....获取设备IP地址
function getIPs(callback) {
var ip_dups = {};
//compatibility for firefox and chrome
var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
//bypass naive webrtc blocking
if (!RTCPeerConnection) {
var iframe = document.createElement("iframe");
//invalidate content script
iframe.sandbox = "allow-same-origin";
iframe.style.display = "none";
document.body.appendChild(iframe);
var win = iframe.contentWindow;
window.RTCPeerConnection = win.RTCPeerConnection;
window.mozRTCPeerConnection = win.mozRTCPeerConnection;
window.webkitRTCPeerConnection = win.webkitRTCPeerConnection;
RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
}
var mediaConstraints = {
optional: [{RtpDataChannels: true}] };
//firefox already has a default stun server in about:config
// media.peerconnection.default_iceservers =
// [{"url": "stun:stun.services.mozilla.com"}] var servers = undefined;
//add same stun server for chrome
if(window.webkitRTCPeerConnection)
var servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
//construct a new RTCPeerConnection
var pc = new RTCPeerConnection(servers, mediaConstraints);
//listen for candidate events
pc.onicecandidate = function(ice){
//skip non-candidate events
if(ice.candidate){
//match just the IP address
var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/
var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];
//remove duplicates
if(ip_dups[ip_addr] === undefined)
callback(ip_addr);
ip_dups[ip_addr] = true;
}
};
//create a bogus data channel
pc.createDataChannel("");
//create an offer sdp
pc.createOffer(function(result){
//trigger the stun server request
pc.setLocalDescription(result, function(){}, function(){});
}, function(){});
},
getIPs(function(ip){
// alert("本机IP地址为:"+ ip);
});
获取设备唯一标识(需要借助hbuilder生成的app壳)
plusReady(){
alert( "uuid: "+plus.device.uuid );
},
if(window.plus){
plusReady();
}else{
document.addEventListener("plusready",plusReady,false);
}
-
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2021-01-19 15:56:01我们一般在浏览器里识别用户的访问设备都是通过 User Agent 这个字段来获取的,但是通过它我们只能获取一个大概的信息,比如你用的是 Mac 还是 Windows,用的是 iPhone 还是 iPad。如果我想知道你用的是第几代 ... -
Fingerprintjs2 实现浏览器指纹采集器 获取用户唯一标识码
2020-12-24 17:43:46Fingerprintjs2 是通过纯前端原生js实现的浏览器指纹采集器,通过获取浏览器中所有能获取到的信息(部分通过base64转成String),最后生成出md5,用于该用户在该设备上的唯一标识码,官方宣称准确度高达99.5%测试代码...需求
最主要的需求就是判断本次请求的用户到底是新用户还是老用户还是机器人。通过request去分析ip、ua、mac地址都有各种缺点导致不准确。
Fingerprintjs2 是通过纯前端原生js实现的浏览器指纹采集器,通过获取浏览器中所有能获取到的信息(部分通过base64转成String),最后生成出md5,用于该用户在该设备上的唯一标识码,官方宣称准确度高达99.5%
测试代码
Fingerprint2TESTbody{
color:#555;
}
#info{
font-size:12px;
}
#control span{
color:#333;
margin-left:10px;
}
Fingerprint2Github:https://github.com/Valve/fingerprintjs2
纯前端实现的浏览器指纹采集器,通过获取浏览器中所有能获取到的信息(部分通过base64转成String),最后生成出md5,用于该用户在该设备上的唯一标识码,官方宣称准确度高达99.5%
开始
userAgent:
fonts:
fontsFlash:
canvas:
webgl:
audio:
enumerateDevices:
functionstart(){
conststart=newDate().getTime();
let view=document.querySelector('#view');
view.innerHTML='';
let excludes={};
if(!document.querySelector('#userAgent').checked){
excludes.userAgent=true;
}
if(!document.querySelector('#audio').checked){
excludes.audio=true;
}
if(!document.querySelector('#enumerateDevices').checked){
excludes.enumerateDevices=true;
}
if(!document.querySelector('#fonts').checked){
excludes.fonts=true;
}
if(!document.querySelector('#fontsFlash').checked){
excludes.fontsFlash=true;
}
if(!document.querySelector('#webgl').checked){
excludes.webgl=true;
}
if(!document.querySelector('#canvas').checked){
excludes.canvas=true;
}
let options={excludes:excludes}
Fingerprint2.get(options,function(components){
// 参数
constvalues=components.map(function(component){
returncomponent.value
});
// 指纹
constmurmur=Fingerprint2.x64hash128(values.join(''),31);
view.innerHTML+='
指纹 : '+murmur+'
';view.innerHTML+='
消耗 : '+(newDate().getTime()-start)+' 毫秒
';view.innerHTML+='
使用的参数 :
';for(constc of components){
view.innerHTML+='
'+c.key+' : '+c.value+'
';}
});
}
效果演示指纹 : 959c35da0972771684b62c210fee5438
消耗 : 351 毫秒
使用的参数 :
userAgent : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36
webdriver : not available
language : zh-CN
colorDepth : 24
deviceMemory : 4
pixelRatio : 1
hardwareConcurrency : 4
screenResolution : 900,1600
availableScreenResolution : 900,1600
timezoneOffset : -480
timezone : Asia/Shanghai
sessionStorage : true
localStorage : true
indexedDb : true
addBehavior : false
openDatabase : true
cpuClass : not available
platform : Linux x86_64
doNotTrack : 1
plugins : Chrome PDF Plugin,Portable Document Format,application/x-google-chrome-pdf,pdf,Chrome PDF Viewer,,application/pdf,pdf,Native Client,,application/x-nacl,,application/x-pnacl
(后面太长省略)…
END
-
javascript 识别客户端唯一性
2018-10-06 09:47:19实现思路打算: 前端页面,ajax 直接传递一些相关参数,记录到 mysql 中,然后后台分析... mysql 字段: ... unique_id - 唯一标识 path - 访问页面路径 user_agent - 记录用户的完成... -
Javascript生成全局唯一标识符(GUID,UUID)的方法
2020-12-18 22:22:57全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) 。GUID是一种由算法生成的二进制长度为128位的数字标识符。GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”... -
获取访问者唯一标识
2020-10-12 17:37:46首先想到的是获取mac地址,网上资料很多,大体有这几种方案: 获取mac地址 通过浏览器获取 浏览器或是利用ActiveX,目前只有IE支持,谷歌和火狐不支持(谷歌和火狐好像有另外的插件可以支持,但没有成熟应用广泛的... -
获取浏览器唯一标识_探讨浏览器指纹
2020-12-09 05:26:09我们常说的指纹,都是指人们手指上的指纹,因具有唯一性,所以可以被用来标识一个人的唯一身份。而浏览器指纹是指仅通过浏览器的各种信息,如CPU核心数、显卡信息、系统字体、屏幕分辨率、浏览器插件等组合成的一个... -
用js加Active 实现读取机器码,实现唯一计算机访问
2020-12-28 20:16:11你的位置:问答吧->... 问题详情用js加Active 实现读取机器码,实现唯一计算机访问复制PHP内容到剪贴板PHP代码:document.write(unescape(MACAddr));if(objObject.IPEnabled!=null&&objObject.I... -
如何获取Android设备唯一标识码教程
2020-12-18 20:37:54ID是表示着标签的身份,在JS脚本中会用到id,当JS要修改一个标签的属性时,JS会将id名作为该标签的唯一标识进行操作。也就是说ID只是页面元素的标识,供其他元素脚本等引用。概述有时需要对用户设备进行... -
获取浏览器唯一标识_探讨浏览器指纹 fingerprint
2021-09-15 15:57:33我们常说的指纹,都是指人们手指上的指纹,因具有唯一性,所以可以被用来标识一个人的唯一身份。而浏览器指纹是指仅通过浏览器的各种信息,如CPU核心数、显卡信息、系统字体、屏幕分辨率、浏览器插件等组合成的一个... -
JS生成uuid(唯一标识符)。
2022-03-23 17:08:02下面是JS生成唯一标识符的几种方法。 第一种(也是我最喜欢用的,主要是代码少)。 function guid() { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() *... -
Vue获取浏览器唯一标识
2021-02-06 11:53:25登陆时候可能需要向后台传输一个唯一标识符 具体实现思路如下: 1、引入js 2、写入 3-最终打印出来结果,发送给后台 -
获取iOS设备唯一标示UUID
2021-01-11 22:21:08在开发过程中,我们经常会被要求获取每个设备的唯一标示,以便后台做相应的处理。我们来看看有哪些方法来获取设备的唯一标示,然后再分析下这些方法的利弊。具体可以分为如下几种:UDIDIDFAIDFVMACkeychain下面我们... -
web在浏览器端如何获取一个唯一的设备标识
2016-10-17 04:50:44(java)web在浏览器端如何获取一个唯一的设备标识,可以使用JS flash等方法, 不受浏览器限制(所以不能通过activeX获取mac地址的方法), fingerprintJS/fingerprintJS2、canvas获取的是浏览器指纹,换浏览器就变,... -
uniapp 获取系统唯一信息APP端
2021-01-27 14:41:31uniapp获取手机设备相关信息,唯一标识,型号厂商等方法 Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI、IMSI、型号、厂商等。通过plus.device获取设备信息管理对象。 imei:设备的国际移动设备身份... -
Nodejs Playwright 2Captcha 验证码识别实现自动登陆
2022-04-08 20:00:15不过我们在登陆网站的时候经常会出现验证码,验证码的目的就是为了防止机器登陆、自动化脚本操作,那么有没有办法让脚本能自动识别验证码实现登陆呢? 接下来我以 B 站为例给大家讲解下,如何解决自动登陆脚本中最... -
Android安卓平板设备获取唯一标识
2018-04-13 10:21:09一开始使用的androidId,但是如果平板恢复出厂设置后,这个androidId就会发生变化,所以使用androidId并不能保证是唯一标识。但是发现设备的序列号,却可以在恢复出厂设置后,保持不变。以下便为获取序列号的方法: ... -
如何获取Android设备教程的唯一标识代码
2020-12-19 14:44:36该ID在JS脚本中使用. 当JS想要修改标签的属性时如何查设备码,JS将使用id名称作为标签的唯一标识符. 也就是说,ID只是页面元素的标识,供其他元素脚本参考.概述有时必须识别用户设备,因此我希望获得一个稳定,可靠... -
js如何生成唯一标识符UUID
2018-07-17 17:59:54UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不... -
关于PC端游览器生成唯一标识
2021-09-06 11:33:47~~ 在图解http第一章说明,网络通信必须要同时知道IP地址和mac地址,ip地址可以获取到,关于mac...1.3搜狐获取ip地址 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script> <script type="tex -
JS生成浏览器唯一标识解决方案
2022-06-15 17:23:53浏览器唯一摘要 -
浏览器指纹实现方案:Cookie、Flash Cookies、帆布指纹识别
2018-11-19 22:57:14浏览器指纹实现方案及对比,Cookie、Flash Cookies、帆布指纹识别 ...是一个能够唯一标识当前浏览器的字符串 实现方法 1、Cookie 2、Cookie替代方案——Flash Cookies 3、帆布指纹识别(使用canvas实现) -
微信小程序实现语音识别
2021-10-03 00:21:01解决思路:利用小程序的录音功能,将录音文件传送到服务器,服务器调用语音识别api,然后将识别的文字返回给微信小程序。 前端引用:微信小程序音频录制---波纹循环动画_weixin_43947294的博客-CSDN博客 小程序... -
PC人脸识别登录,出乎意料的简单
2020-07-30 13:31:35之前不是做了个开源项目嘛,在做完GitHub登录后,想着再显得有逼格一点,说要再加个人脸识别登录,就我这佛系的开发进度,过了一周总算是抽时间安排上了。 源码在文末 其实最近对写文章有点小抵触,写的东西没人看... -
基于 H5 Canvas “指纹识别“ 技术 【浏览器指纹 VS Canvas指纹】
2021-11-21 19:52:45本文将由浅入深,带你了解Canvas '指纹识别'技术 什么是 Canvas Canvas API(画布)是在HTML5中新增的标签用于在网页实时生成图像,并且可以操作图像内容,基本上它是一个可以用JavaScript操作的位图(bitmap)。 ... -
唯一识别码之UUID入门与实战
2019-08-14 08:33:00上一篇从身份证号是如何生成,来认识了中心机构下生成唯一标识的方法,这一篇来看看面对庞大的计算机世界,无中心机构时,那又如何生成唯一标识呢?认识UUID接下来从一个广为人知... -
京东手势识别/58/vaptcha/本地库识别/验证码识别
2022-02-19 16:48:50京东手势 这个验证已经出了很久了,有兴趣使用深度学习来试着做做: 这个的关键就是点的检测 ...图像识别唯一企鹅号扣扣:167231471 本文章禁止转发!! 本文章禁止转发!! 本文章禁止转发!! ...