当前位置: 首页 > news >正文

JavaScript读写T5557卡源码

本示例使用发卡器: https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-21818769070.13.48ce6f89XlQ9Vf&id=675212889085

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>T5557读写器DEMO</title><script language="javascript">window.onload = function() {document.getElementById('textcarduid').hidden=true;document.getElementById('textauthkey').hidden=true;document.getElementById('initkey').hidden=true;			document.getElementById('nodeinf').hidden=true;			}var iswsrun = false;var ws;var received_msg = "";var mytimer;var strls = "";var errorno = "";var wsUri = "ws://127.0.0.1:39189";   //端口号必须与RFIDWebServer端口一致function isUIntNum(val) {var testval = /^\d+$/; // 非负整数return (testval.test(val));}function isHex(val) {var testval = /^(\d|[A-F]|[a-f])+$/; // 十六进制数判断return (testval.test(val));}							function beep() {				     //驱动发卡器响声令textarea.value = "";		WebSocketRun("idr_beep,30");	 //30为响声时长豪秒,取值范围1-65535}function getdevicenumber() {         //读取发卡器唯一出厂序号,可以当加密狗使用			textarea.value = "";		serialnumber.value="";WebSocketRun("IDpcdgetdevicenumber");			}		function ReadID() {					//卡片在感应区内可以连续读取卡号textarea.value = "";carduid.value="";			Vendorcode.value="";card8h10dz.value="";card8h10df.value="";cardwg26z.value="";cardwg34z.value="";WebSocketRun("idr_read,");}			function ReadIDOne() {				//卡片进入感应区内只可读取一次卡号,再次读取需将卡片移开再次放入感应区textarea.value = "";carduid.value="";			Vendorcode.value="";card8h10dz.value="";card8h10df.value="";cardwg26z.value="";cardwg34z.value="";WebSocketRun("idr_read_once,");}						function t5557_read() {textarea.value = "";RWdata.value="";myctrlword = 0;                     //控制字,只对指定系列号的卡操作+1,需要用密码认证+2,写卡后要锁定配置块或数据块+4,启用本卡的密码功能+8,操作成功后重启卡片+16if (checkauthkey.checked) {mypicckey= textauthkey.value.trim();            //指定要读写卡的认证密钥myctrlword=myctrlword+2;if (!isHex(mypicckey) || mypicckey.length!=8) {alert( "卡片认证密钥输入错误,请输入8位16进制认证密钥!");textauthkey.focus();textauthkey.select();return;}				}else{mypicckey = "00000000";             //t5557卡密码为4个字节,卡出厂时密码功能不启用,无需密码也能读写卡	}if (checkuid.checked) {mypiccserial= textcarduid.value.trim();            //指定要读写卡的UIDif (!isHex(mypiccserial) || mypiccserial.length!=12) {alert( "UID输入错误,请输入正确的12位16进制卡片UID!");textcarduid.focus();textcarduid.select();return;}		if (mypiccserial!="000000000000"){myctrlword=myctrlword+1;}		}else{mypiccserial = "000000000000";      //读任意卡,t5557卡UID6个字节}//总计8位二进制数,从右1到左分别表示T5557卡第0页 第0块到第7块的地址是否选取,为1表示选择读,为0 表示不读if (checkblock0.checked){mypiccblockflag="1";}else{mypiccblockflag="0";}if (checkblock1.checked){mypiccblockflag="1"+mypiccblockflag;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock2.checked){mypiccblockflag="1"+mypiccblockflag;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock3.checked){mypiccblockflag="1"+mypiccblockflag;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock4.checked){mypiccblockflag="1"+mypiccblockflag;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock5.checked){mypiccblockflag="1"+mypiccblockflag;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock6.checked){mypiccblockflag="1"+mypiccblockflag;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock7.checked){mypiccblockflag="1"+mypiccblockflag;}else{mypiccblockflag="0"+mypiccblockflag;}//总计8位二进制数,最右边1位取0,从右2到左分别表示T5557卡第1页 第0块到第3块块地址是否选取,T5557第一页只有0、1两个块,T5567、T5577有0、1、2、3四个块				mypiccblockflag=mypiccblockflag+"000";			if (checkblock23.checked){mypiccblockflag=mypiccblockflag+"1";}else{mypiccblockflag=mypiccblockflag+"0";}			if (checkblock22.checked){mypiccblockflag=mypiccblockflag+"1";}else{mypiccblockflag=mypiccblockflag+"0";}			if (checkblock21.checked){mypiccblockflag=mypiccblockflag+"1";}else{mypiccblockflag=mypiccblockflag+"0";}	if (checkblock20.checked){mypiccblockflag=mypiccblockflag+"1";}else{mypiccblockflag=mypiccblockflag+"0";}					mypiccblockflag=mypiccblockflag+"0";            if (mypiccblockflag=="0000000000000000"){alert( "未选择操作块,请选择要读的块!");return;}var Readt5557Comm = "t5557_read," + myctrlword + "," + mypiccserial + "," + mypicckey + "," + mypiccblockflag;WebSocketRun(Readt5557Comm);}	function t5557_write() {textarea.value = "";myctrlword = 0;                     //控制字,只对指定系列号的卡操作+1,需要用密码认证+2,写卡后要锁定配置块或数据块+4,启用本卡的密码功能+8,操作成功后重启卡片+16if (checkauthkey.checked) {mypicckey= textauthkey.value.trim();            //指定要读写卡的认证密钥myctrlword=myctrlword+2;if (!isHex(mypicckey) || mypicckey.length!=8) {alert( "卡片认证密钥输入错误,请输入8位16进制认证密钥!");textauthkey.focus();textauthkey.select();return;}				}else{mypicckey = "00000000";             //t5557卡密码为4个字节,卡出厂时密码功能不启用,无需密码也能读写卡	}if (checkuid.checked) {mypiccserial= textcarduid.value.trim();            //指定要读写卡的UIDif (!isHex(mypiccserial) || mypiccserial.length!=12) {alert( "UID输入错误,请输入12位16进制UID!");textcarduid.focus();textcarduid.select();return;}		if (mypiccserial!="000000000000"){myctrlword=myctrlword+1;}		}else{mypiccserial = "000000000000";      //读任意卡,t5557卡UID6个字节}//总计8位二进制数,从右1到左分别表示T5557卡第0页 第0块到第7块的地址是否选取,为1表示选择读,为0 表示不读blocks=0;if (checkblock0.checked){mypiccblockflag="1";blocks=blocks+1;}else{mypiccblockflag="0";}if (checkblock1.checked){mypiccblockflag="1"+mypiccblockflag;blocks=blocks+1;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock2.checked){mypiccblockflag="1"+mypiccblockflag;blocks=blocks+1;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock3.checked){mypiccblockflag="1"+mypiccblockflag;blocks=blocks+1;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock4.checked){mypiccblockflag="1"+mypiccblockflag;blocks=blocks+1;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock5.checked){mypiccblockflag="1"+mypiccblockflag;blocks=blocks+1;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock6.checked){mypiccblockflag="1"+mypiccblockflag;blocks=blocks+1;}else{mypiccblockflag="0"+mypiccblockflag;}if (checkblock7.checked){mypiccblockflag="1"+mypiccblockflag;blocks=blocks+1;}else{mypiccblockflag="0"+mypiccblockflag;}//总计8位二进制数,最右边1位取0,从右2到左分别表示T5557卡第1页 第0块到第3块块地址是否选取,T5557第一页只有0、1两个块,T5567、T5577有0、1、2、3四个块				mypiccblockflag=mypiccblockflag+"000";			if (checkblock23.checked){mypiccblockflag=mypiccblockflag+"1";blocks=blocks+1;}else{mypiccblockflag=mypiccblockflag+"0";}			if (checkblock22.checked){mypiccblockflag=mypiccblockflag+"1";blocks=blocks+1;}else{mypiccblockflag=mypiccblockflag+"0";}			if (checkblock21.checked){mypiccblockflag=mypiccblockflag+"1";blocks=blocks+1;}else{mypiccblockflag=mypiccblockflag+"0";}	if (checkblock20.checked){mypiccblockflag=mypiccblockflag+"1";blocks=blocks+1;}else{mypiccblockflag=mypiccblockflag+"0";}					mypiccblockflag=mypiccblockflag+"0";            if (mypiccblockflag=="0000000000000000"){alert( "未选择操作块,请选择要写的块!");return;}//数据strls = RWdata.value.trim();if (!isHex(strls)  || strls.length<blocks*8) {alert( "写数据输入错误,请输入"+(blocks*8).toString()+"位16进制写卡数据!");RWdata.focus();RWdata.select();return;}var Writet5557Comm = "t5557_write," + myctrlword + "," + mypiccserial + "," + mypicckey + "," + mypiccblockflag + "," + strls;WebSocketRun(Writet5557Comm);}	function t5557_init() {textarea.value = "";myctrlword = 0;                     //控制字,只对指定系列号的卡操作+1,需要用密码认证+2,写卡后要锁定配置块或数据块+4,启用本卡的密码功能+8,操作成功后重启卡片+16if (checkauthkey.checked) {mypicckey= textauthkey.value.trim();            //指定要读写卡的认证密钥myctrlword=myctrlword+2;if (!isHex(mypicckey) || mypicckey.length!=8) {alert( "卡片认证密钥输入错误,请输入8位16进制认证密钥!");textauthkey.focus();textauthkey.select();return;}				}else{mypicckey = "00000000";             //t5557卡密码为4个字节,卡出厂时密码功能不启用,无需密码也能读写卡	}if (checkuid.checked) {mypiccserial= textcarduid.value.trim();            //指定要读写卡的UIDif (!isHex(mypiccserial) || mypiccserial.length!=12) {alert( "UID输入错误,请输入正确的12位16进制卡片UID!");textcarduid.focus();textcarduid.select();return;}		if (mypiccserial!="000000000000"){myctrlword=myctrlword+1;}		}else{mypiccserial = "000000000000";      //读任意卡,t5557卡UID6个字节}if (checkconfig.checked)                       //新配置开启密码保护{myctrlword = myctrlword + 8;mynewkey = initkey.value.trim();if (!isHex(mynewkey) || mynewkey.length!=8) {alert("卡密钥输入错误,请输入8位16进制卡密钥!");initkey.focus();initkey.select();return;}}else{mynewkey = "00000000";}myconfig = textconf.value.trim();if (!isHex(myconfig) || myconfig.length!=8) {alert("卡片配置值输入错误,请输入8位16进制卡片配置值!");textconf.focus();textconf.select();return;}var initt5557Comm = "t5557_init," + myctrlword + "," + mypiccserial + "," + mypicckey + "," + myconfig + "," + mynewkey;WebSocketRun(initt5557Comm);}		function t5557_changekey() {textarea.value = "";myctrlword = 0;                     //控制字,只对指定系列号的卡操作+1,需要用密码认证+2,写卡后要锁定配置块或数据块+4,启用本卡的密码功能+8,操作成功后重启卡片+16if (checkauthkey.checked) {mypicckey= textauthkey.value.trim();            //指定要读写卡的认证密钥myctrlword=myctrlword+2;if (!isHex(mypicckey) || mypicckey.length!=8) {alert( "卡片认证密钥输入错误,请输入8位16进制认证密钥!");textauthkey.focus();textauthkey.select();return;}				}else{mypicckey = "00000000";             //t5557卡密码为4个字节,卡出厂时密码功能不启用,无需密码也能读写卡	}if (checkuid.checked) {mypiccserial= textcarduid.value.trim();            //指定要读写卡的UIDif (!isHex(mypiccserial) || mypiccserial.length!=12) {alert( "UID输入错误,请输入正确的12位16进制卡片UID!");textcarduid.focus();textcarduid.select();return;}		if (mypiccserial!="000000000000"){myctrlword=myctrlword+1;}		}else{mypiccserial = "000000000000";      //读任意卡,t5557卡UID6个字节}mynewkey = textnewkey.value.trim();if (!isHex(mynewkey) || mynewkey.length!=8) {alert("新密钥输入错误,请输入8位16进制新密钥!");textnewkey.focus();textnewkey.select();return;}var Writet5557Comm = "t5557_changekey," + myctrlword + "," + mypiccserial + "," + mypicckey + "," + mynewkey;WebSocketRun(Writet5557Comm);}			function selechanguid(){var t = document.getElementById('textcarduid');if (checkuid.checked){				document.getElementById('textcarduid').hidden=false; }else{document.getElementById('textcarduid').hidden=true; }				}function selecheckauthkey(){			if (checkauthkey.checked){				document.getElementById('textauthkey').hidden=false; }else{document.getElementById('textauthkey').hidden=true; }			}function selechangeinit(){if (checkconfig.checked){				document.getElementById('initkey').hidden=false; document.getElementById('nodeinf').hidden=false;		document.getElementById('textconf').value='00088038';}else{	document.getElementById('initkey').hidden=true; document.getElementById('nodeinf').hidden=true;		document.getElementById('textconf').value='00088028';}						}function DispErrInfo(errcode){var errstr = "";switch (errcode) {case "ReturnCode:001":errstr = ",写入配置的值不正确,请重新写入!";break;case "ReturnCode:002":errstr = ",本卡尚未开启密码功能,请不要勾选带密钥操作,函数myctrlword不要加2!";break;case "ReturnCode:003":errstr = ",需要密码才能读写卡,请选择带密钥操作,函数myctrlword要加2!";break;case "ReturnCode:005":errstr = ",密码错误!";break;				case "ReturnCode:008":errstr = ",未寻到卡,请重新将卡放到发卡器的感应区!";break;case "ReturnCode:021":errstr = ",没有动态库!";break;case "ReturnCode:022":errstr = ",动态库或驱动程序异常!";break;case "ReturnCode:023":errstr = ",驱动程序错误或发卡器未连接!";break;case "ReturnCode:024":errstr = ",操作超时,一般是动态库没有反映!";break;case "ReturnCode:025":errstr = ",发送字数不够!";break;case "ReturnCode:026":errstr = ",发送的CRC错!";break;case "ReturnCode:027":errstr = ",接收的字数不够!";break;case "ReturnCode:028":errstr = ",接收的CRC错!";break;case "ReturnCode:029":errstr = ",函数输入参数格式错误!";break;case "ReturnCode:444":errstr = ",RFIDWebServer系统文件错误!";break;default:errstr = ",未知的错误!";}return errstr;}			window.onerror = function (e) {alert("不好意思,出错了!");return true;//屏蔽系统事件}function timeoutevent() {ws.close();textarea.value = "websockket返回超时";}//websockket数据处理function WebSocketRev(evt) {clearTimeout(mytimer);received_msg = evt.data;ws.close();//在这里解析返回数据var strlist = received_msg.split(",");if (strlist.length > 1) {var dispstr = "";switch (strlist[0]) {case "idr_beep":dispstr = "函数名称:" + strlist[0] + "\r\n";if (strlist[1] == "ReturnCode:000") {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + ",已执行蜂鸣响声操作!\r\n"} else {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + DispErrInfo(strlist[1]);}textarea.value = dispstr;break;case "pcdgetdevicenumber":dispstr = "函数名称:" + strlist[0] + "\r\n";if (strlist[1] == "ReturnCode:000") {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + ",已读取设备编号!\r\n"serialnumber.value =  strlist[2] ;} else {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + DispErrInfo(strlist[1]);}textarea.value = dispstr;break;case "idr_read":case "idr_read_once":dispstr = "函数名称:" + strlist[0] + "\r\n";if (strlist[1] == "ReturnCode:000") {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + ",已读取卡号!\r\n"} else {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + DispErrInfo(strlist[1]);}if (strlist.length > 2) {carduid.value=strlist[2] ;Vendorcode.value=strlist[2].substring(0,2);HLCode=strlist[2].substring(2,4)+strlist[2].substring(4,6)+strlist[2].substring(6,8)+strlist[2].substring(8,10);card8h10dz.value=parseInt("0x"+HLCode).toString().padStart(10, '0');LHCode=strlist[2].substring(8,10)+strlist[2].substring(6,8)+strlist[2].substring(4,6)+strlist[2].substring(2,4);card8h10df.value=parseInt("0x"+LHCode).toString().padStart(10, '0');cardwg26z.value=parseInt("0x"+strlist[2].substring(4,6)).toString().padStart(3, '0')+parseInt("0x"+strlist[2].substring(6,10)).toString().padStart(5, '0');cardwg34z.value=parseInt("0x"+strlist[2].substring(2,6)).toString().padStart(5, '0')+parseInt("0x"+strlist[2].substring(6,10)).toString().padStart(5, '0');							}textarea.value = dispstr;break;	case "t5557_read":dispstr = "函数名称:" + strlist[0] + "\r\n";if (strlist[1] == "ReturnCode:000") {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + ",已读取卡内数据!\r\n";} else {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + DispErrInfo(strlist[1]);}if (strlist.length > 2) {dispstr = dispstr + "卡序列号:" + strlist[2] + "\r\n";}if (strlist.length > 3) {RWdata.value =  strlist[3] ;}if (strlist.length > 4) {dispstr = dispstr + "卡无线转输分频比:" + strlist[4] + "\r\n";}textarea.value = dispstr;break;	case "t5557_write":case "t5557_changekey":case "t5557_init":dispstr = "函数名称:" + strlist[0] + "\r\n";if (strlist[1] == "ReturnCode:000") {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + ",写卡成功!\r\n"} else {dispstr = dispstr + "操作结果:" + strlist[1];dispstr = dispstr + DispErrInfo(strlist[1]);}if (strlist.length > 2) {dispstr = dispstr + "卡序列号:" + strlist[2] + "\r\n";}textarea.value = dispstr;break;																}}}		function WebSocketRun(sendinfo) {iswsrun = false;try {if ("WebSocket" in window) {ws = new WebSocket(wsUri);}else if ("MozWebSocket" in window) {ws = new MozWebSocket(wsUri);}else {received_msg = "您的浏览器不支持WebSocket,请选用支持WebSocket的浏览器!";return;}clearTimeout(mytimer);ws.onopen = function (evt) {ws.send(sendinfo);iswsrun = true;mytimer = setTimeout("timeoutevent()", 2000);};ws.onmessage = WebSocketRev;ws.onerror = function (e) {if (iswsrun != true) {received_msg = "请先在当前电脑下载>安装>运行我们的服务程序......";window.open("http://www.icmcu.com/ICID15693-02V2test/RFIDWebServerSetup.exe", "top");//打开新窗口alert("请先下载>安装>运行我们的服务程序,再刷新本页面......");}};}catch (ex) {if (iswsrun != true) {received_msg = "请先在当前电脑下载>安装>运行我们的服务程序......";window.open("http://www.icmcu.com/ICID15693-02V2test/RFIDWebServerSetup.exe", "top");//打开新窗口alert("请先下载>安装>运行我们的服务程序,再刷新本页面......");}}}</script><style>th {font-family:楷体;background-color:#F5F5F5;		color:blue;}td {font-family:楷体;background-color:#F5F5F5;		}  </style>        </head><body>
<table width="866" height="640" border="1" align="center"><tr><th width="124" height="47" scope="row"><input name="butt_beep" type="submit" id="butt_beep" onclick="beep()" value="驱动发卡器响声" /></th><td width="716"><input name="butt_getdevnum" type="submit" id="butt_getdevnum" onclick="getdevicenumber()" value="读取发卡器唯一出厂序列号" />设备编号:<input style="color:red;text-align:center;" name="serialnumber" type="text" id="serialnumber" size="8" maxlength="8" /></td></tr><tr><th height="67" scope="row"><p>&nbsp;</p></th><td><p><input name="checkauthkey" type="checkbox" id="checkauthkey" onchange="selecheckauthkey()" value="" />选择带密钥操作,8位16进制卡片认证密钥:<input style="color:blue;text-align:center;" name="textauthkey" type="text" id="textauthkey" value="00000000" size="8" maxlength="8" onkeyup="this.value=this.value.replace(/[^0-9a-fA-F]/g,'')"/><br /><input name="checkuid" type="checkbox" id="checkuid" onchange="selechanguid()" value="" />选择只操作指定ID的卡,12位16进制UID:<input style="color:blue;text-align:center;" name="textcarduid" type="text" id="textcarduid" value="000000000000" size="12" maxlength="12" onkeyup="this.value=this.value.replace(/[^0-9a-fA-F]/g,'')"/></p><table width="723" height="200" border="1"><tr><td height="196"><label style="color:blue;">第0页:</label><label style="color:red;" ><br /><br /><input name="checkblock0" type="checkbox" id="checkblock0" checked="checked" />第0块,配置块,只能读需用特殊指令写<br /></label><label><input name="checkblock1" type="checkbox" id="checkblock1" checked="checked" />第1块,用户数据块,可读写<br /></label><label><input name="checkblock2" type="checkbox" id="checkblock2" checked="checked" />第2块,用户数据块,可读写<br /></label><label><input name="checkblock3" type="checkbox" id="checkblock3" checked="checked" />第3块,用户数据块,可读写<br /></label><label><input name="checkblock4" type="checkbox" id="checkblock4" checked="checked" />第4块,用户数据块,可读写<br /></label><label><input name="checkblock5" type="checkbox" id="checkblock5" checked="checked" />第5块,用户数据块,可读写<br /></label><label><input name="checkblock6" type="checkbox" id="checkblock6" checked="checked" />第6块,用户数据块,可读写<br /></label><label style="color:blue;"><input name="checkblock7" type="checkbox" id="checkblock7" checked="checked" />第7块,密钥或数据块,由配置值决定</label></td><td><Label style="color:blue;">第1页:</label><label><br /><br /><input name="checkblock20" type="checkbox" id="checkblock20" />第0块,可追溯数据块,只能读<br /></label><label><input name="checkblock21" type="checkbox" id="checkblock21" />第1块,可追溯数据块,只能读<br /></label><label><input name="checkblock22" type="checkbox" id="checkblock22" />第2块,可追溯数据块,只能读<br /></label><label><input name="checkblock23" type="checkbox" id="checkblock23" />第3块,可追溯数据块,只能读<br /><br /><br /><br />           </label><label style="color:blue;"> t5557此页有0、1两块,t5567、t5577此页有四块</label></td></tr></table></td></tr>  <tr><th width="124" height="48" scope="row"><input name="button" type="submit" id="butt_writeconfig" onclick="t5557_init()" value="设置T5557卡配置" /></th><td width="716"><p><input name="checkconfig" type="checkbox" id="checkconfig" onchange="selechangeinit()" value="" />选择开启卡片密钥保护机制,8位16进制卡密钥<input style="color:blue;text-align:center;" name="initkey" type="text" id="initkey" value="00000000" size="8" maxlength="8" onkeyup="this.value=this.value.replace(/[^0-9a-fA-F]/g,'')"/> <label style="color:red;" id="nodeinf" for="nodeinf">,请务必记住卡片密钥!</label> <br />卡片配置值:<input name="textconf" type="text" id="textconf" style="color:blue;text-align:center" value="00088028" size="8" maxlength="8" onkeyup="this.value=this.value.replace(/[^0-9a-fA-F]/g,'')"/><label style="color:red;text-align: right">,请确保写入卡片的配置值正确,否则卡片将报废!无法读写的卡片可先设置默认值后再试试。</label></p></td></tr><tr><th width="124" height="48" scope="row"><input name="button3" type="submit" id="button" onclick="t5557_changekey()" value="修改T5557卡密钥" /></th><td width="716"><p>新密钥:<input style="color:blue;text-align:center;" name="textfield" type="text" id="textnewkey" value="00000000" size="8" maxlength="8" onkeyup="this.value=this.value.replace(/[^0-9a-fA-F]/g,'')"/> <label style="color:red;"  for="nodeinf2">,请务必记住卡片新密钥!</label></p></td></tr>  <tr><th width="124" height="52" scope="row"><p><input name="button2" type="submit" id="butt_read75557" onclick="t5557_read()" value="轻松读T5557卡" /><br /><br /><input name="butt_t5557_write" type="submit" id="butt_t5557_write" onclick="t5557_write()" value="轻松写T5557卡" /></p></th><td width="716"><textarea style="color:red;" name="RWdata" id="RWdata" cols="100" rows="4" onkeyup="this.value=this.value.replace(/[^0-9a-fA-F]/g,'')"></textarea></td></tr><tr><th height="68" scope="row"><p><input name="butt_idr_read" type="submit" id="butt_idr_read" onclick="ReadID()" value="读取4100ID卡号" /></p></th><td><p>原始16进制卡号:<input style="color:red;text-align:center;" name="carduid" type="text" id="carduid" size="10" maxlength="10" />,厂商代码:<input style="color:red;text-align:center;" name="Vendorcode" type="text" id="Vendorcode" size="2" maxlength="2" />,转8H10D反码:<input style="color:red;text-align:center;" name="card8h10df" type="text" id="card8h10df" size="10" maxlength="10" /></p><p>转8H10D正码:<input style="color:red;text-align:center;" name="card8h10dz" type="text" id="card8h10dz" size="10" maxlength="10" />,转WG26正码:<input style="color:red;text-align:center;" name="cardwg26z" type="text" id="cardwg26z" size="10" maxlength="10" />,转WG34正码:<input style="color:red;text-align:center;" name="cardwg34z" type="text" id="cardwg34z" size="10" maxlength="10" /></p></td></tr><tr><th height="78" scope="row"><p>操作提示</p></th><td><textarea style="color:blue;" name="textarea" id="textarea" cols="100" rows="5" ></textarea></td></tr>
</table>
</body>
</html>

相关文章:

JavaScript读写T5557卡源码

本示例使用发卡器&#xff1a; https://item.taobao.com/item.htm?spma1z10.5-c-s.w4002-21818769070.13.48ce6f89XlQ9Vf&id675212889085 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t…...

【数据结构】LRU缓存的简单模拟实现(leetcode力扣146LRU缓存)

文章目录 一、定义二、LRU模拟实现二、代码实现 一、定义 LRU是Least Recently Used的缩写&#xff0c;意思是最近最少使用&#xff0c;它是一种Cache替换算法。 Cache的容量有限&#xff0c;因此当Cache的容量用完后&#xff0c;而又有新的内容需要添加进来时&#xff0c; 就…...

基于电商场景的高并发RocketMQ实战-Commitlog基于内存的高并发写入优化、基于JVM offheap的内存读写分离机制

&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308;&#x1f308; 【11来了】文章导读地址&#xff1a;点击查看文章导读&#xff01; &#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f341;&#x1f3…...

工具系列:TensorFlow决策森林_(3)使用dtreeviz可视化

文章目录 介绍设置安装 TF-DF 和 dtreeviz导入库 可视化分类树加载、清洗和准备数据分割训练/测试集并训练模型训练一个随机森林分类器显示决策树检查叶节点统计信息决策树如何对实例进行分类特征空间划分 可视化回归树加载、清洗和准备数据分割训练/测试集并训练模型训练一个随…...

【算法学习】斐波那契数列模型-动态规划

前言 我在算法学习过程中&#xff0c;针对斐波那契数列模型的动态规划的例题进行了一个整理&#xff0c;并且根据标准且可靠一点的动态规划解题思路进行求解类似的动归问题&#xff0c;来达到学习和今后复习的必要。 所谓的斐波那契数列模型&#xff0c;即当前状态的值等于前两…...

ES的安装和RestClient的操作

目录 初识elasticsearch 什么是elasticsearch elasticsearch的发展 Lucene的优缺点 elasticsearch的优势 倒排索引 es与mysql的概念对比 文档 索引 概念对比 架构 安装es 安装kibana 安装ik分词器 分词器 安装ik分词器 ik分词器的拓展和停用词典 操作索引库…...

访问者模式(Visitor)

访问者模式(Visitor Pattern)是一种将算法与对象结构分离的行为型设计模式。这种模式主要用于对一个由许多不同类型的对象构成的复杂对象结构(如组合结构)进行操作,而不需要对这些对象的类进行修改。 访问者模式涉及以下几个角色: 访问者(Visitor):为每一个具体元素类…...

ATTCK红队评估一

一、环境搭建 主机 ip地址 win7外网服务器&#xff08;两张网卡&#xff09; 外网&#xff1a;192.168.92.135 内网&#xff1a;192.168.52.143 server2003域成员主机 内网&#xff1a;192.168.52.141 server2008域空主机 内网&#xff1a;192.168.52.138 kali攻击机 …...

W5500-EVB-Pico评估版介绍

文章目录 1 概述2 板载资源2.1 硬件规格2.2 硬件规格2.3 工作条件 3 参考资料3.2 原理图3.3 尺寸图 (单位 : mm)3.4 参考例程 4 硬件协议栈优势 1 概述 W5500-EVB-Pico是基于树莓派RP2040和完全硬连线TCP/IP控制器W5500的微控制器开发板-基本上与树莓派Pico板相同&#xff0c;但…...

单聊和群聊

TCP协议单聊 服务端&#xff1a; import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Vec…...

Swift 检测 iCloud状态

Show me the code: func isICloudContainerAvailable() -> Bool {if let _ FileManager.default.ubiquityIdentityToken {return true} else {return false} }推荐一下刚上线的 App 熊猫小账本&#xff0c;里面有用到这篇博客讲的内容 熊猫小账本 一个简洁的记账 App&…...

使用Windi CSS(基于vue-cli)

1、先创建vue项目 利用脚手架vue-cli创建&#xff0c;根据需求设置vue版本、babel等&#xff0c;无特别要求直接用默认的vue2或vue3就行 vue create 项目名 2、运行vue项目&#xff0c;利用vue-cli安装Windi CSS 官网指导&#xff1a;Vue CLI 集成 | Windi CSS 我的经历&a…...

操作无法完成(错误 0x000006ba),Windows 11 PDF打印机无法使用解决办法

操作无法完成(错误 0x000006ba)&#xff0c;Windows 11 PDF打印机无法使用解决办法 解决方式一 先重启一次电脑&#xff0c;看看是否可以解决问题。 解决方式二 重新启动 Printer Spooler 服务...

Settings中电池选项-Android13

Settings中电池选项-Android13 1、设置中界面2、电池计算2.1 充电时间计算2.1.1 BatteryUsageStats获取2.1.2 BatteryStatsImpl计算 2.2 电池剩余使用时间2.2.1 Estimate获取2.2.2 BatteryStatsImpl计算 3、电池信息来源4、命令模拟* 日志 [电池]Android 9.0 电池未充电与充电字…...

解密 Java ForEach 提前终止问题

目录 前言&#xff1a;场景复现分析与解决方案解决方案详解总结 前言&#xff1a; 你是否曾在使用 Java 8 的 forEach 迭代集合时遇到过提前终止循环的问题&#xff1f;在这篇博客中&#xff0c;我们将深入探讨这一问题&#xff0c;并提供多种解决方案。通过场景复现、分析源码…...

7_js_dom编程入门1

Objective&#xff08;本课目标&#xff09; 掌握获取页面元素的常用方法 掌握事件触发案例 能够区分innerText和innerHTML的区别 综合案例训练 1 DOM 介绍 1.1 什么是DOM 文档对象模型&#xff08;Document Object Model&#xff0c;简称DOM&#xff09;&#xff0c;是 …...

使用 Elasticsearch 检测抄袭 (一)

作者&#xff1a;Priscilla Parodi 抄袭可以是直接的&#xff0c;涉及复制部分或全部内容&#xff0c;也可以是释义的&#xff0c;即通过更改一些单词或短语来重新表述作者的作品。 灵感和释义之间是有区别的。 即使你得出类似的结论&#xff0c;也可以阅读内容&#xff0c;获得…...

STM32 cubeMX 直流电机控制风扇转动

本文使用的是 HAL 库。 文章目录 前言一、直流电机介绍二、直流电机原理图三、直流电机控制方法四、STM32CubeMX 配置直流电机五、代码编写总结 前言 实验开发板&#xff1a;STM32F051K8。所需软件&#xff1a;keil5 &#xff0c; cubeMX 。实验目的&#xff1a;了解 直流电机…...

我在 VSCode 插件里接入了 ChatGPT,解决了Bug无法定位的难题

作为一名软件开发者&#xff0c;我时常面临着代码中Bug的定位和解决问题。这个过程往往既费时又充满挑战。然而&#xff0c;最近我在我的VSCode插件中接入了ChatGPT&#xff0c;这个决定彻底改变了我处理Bug的方式。 Bug&#xff1a;开发者的噩梦 在开发过程中&#xff0c;遇…...

学Java的第四天

一、switch语句 switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default: 语句体n1; break; } 首先计算表达式的值&#xff0c;然后和case 比较&#xff0c;有对应的值就执行对应的语句&#xff0c;遇到 break 就结束。 最后如果所有的cas…...

[内功修炼]函数栈帧的创建与销毁

文章目录 1:什么是函数栈帧2:理解函数栈帧能解决什么问题呢3:函数栈帧的创建与销毁的解析3.1:什么是栈3.2:认识相关寄存器与汇编指令相关寄存器相关汇编指令 3.3 解析函数栈帧的创建和销毁3.3.1 预备知识3.3.2 详细解析一:调用main函数,为main函数开辟函数栈帧First:push前push…...

【深度学习-目标检测】03 - Faster R-CNN 论文学习与总结

论文地址&#xff1a;Faster R-CNN: Towards Real-Time ObjectDetection with Region Proposal Networks 论文学习 1. 摘要与引言 研究背景与挑战&#xff1a;当前最先进的目标检测网络依赖于 区域提议&#xff08;Region Proposals&#xff09;来假设目标的位置&#xff0c…...

oracle11体系结构二-存储结构

数据区&#xff1a; 数据区&#xff08;数据扩展区&#xff09;由一组连续的oracle数据块所构成的存储结构&#xff0c;一个或多个数据块组成一个数据区&#xff0c;一个或多个数据区组成一个段。当段中所有空间被使用完后&#xff0c;oracle系统将自动为该段分配一个新的数据…...

如何通过内网穿透实现远程访问本地Linux SVN服务

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…...

网页乱码问题(edge浏览器)

网页乱码问题&#xff08;edge&#xff09; 文章目录 网页乱码问题&#xff08;edge&#xff09;前言一、网页乱码问题1.是什么&#xff1a;&#xff08;描述&#xff09;2.解决方法&#xff1a;&#xff08;针对edge浏览器&#xff09;&#xff08;1&#xff09;下载charset插…...

泛微OA xmlrpcServlet接口任意文件读取漏洞(CNVD-2022-43245)

CNVD-2022-43245 泛微e-cology XmlRpcServlet接口处存在任意文件读取漏洞&#xff0c;攻击者可利用漏洞获取敏感信息。 1.漏洞级别 中危 2.影响范围 e-office < 9.5 202201133.漏洞搜索 fofa 搜索 app"泛微-OA&#xff08;e-cology&#xff09;"4.漏洞复现 …...

MATLAB ga函数的使用方法

一、ga句法结构 x ga(fitnessfcn,nvars) x ga(fitnessfcn,nvars,A,b) x ga(fitnessfcn,nvars,A,b,Aeq,beq) x ga(fitnessfcn,nvars,A,b,Aeq,beg,IB,UB) x ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon) x ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options) x …...

基于STM32和MQ-2传感器的无线烟雾检测系统设计

随着科技的不断发展&#xff0c;人们对生活安全的要求也越来越高。其中&#xff0c;烟雾检测系统在预防火灾方面起着至关重要的作用。本文将介绍一种基于STM32和MQ-2传感器的无线烟雾检测系统设计&#xff0c;旨在实时检测环境中的烟雾&#xff0c;并及时发出警报&#xff0c;以…...

华为vrrp+mstp+ospf+dhcp+dhcp relay配置案例

1、左边是vlan 10主桥&#xff0c;右边是vlan 20的主桥&#xff0c;并且互为备桥 2、 vlan 10 vrrp网关默认用左边&#xff0c;vlan 20的vrrp 网关默认用右边&#xff0c;对应mstp生成树 3、两边都track检测&#xff0c;不通就把vrrp减掉60&#xff0c;这样就会自动切另一边了 …...

5-Docker实例-tomcat application

1.安装如下树形结构创建目录及文件,内容如下: 目录结构: [root@centos79 ~]# tree demo demo ├── index.html └── WEB-INF└── web.xml1 directory, 2 files [root@centos79 ~]# index.html文件内容 [root@centos79 demo]# cat index.html <h1>hello dock…...

Pikachu靶场 “Http Header”SQL注入

1. 先在 pikachu 打开 Http Header 注入模块&#xff0c;点击提示 查看登录 账号 和 密码&#xff0c;登陆后去 Burp 中找到登陆的 GET请求 2. 设置payload1 &#xff1a;在 User-Agent最后 输入 查看 数据库名 or updatexml(1,concat(0x7e,database()),0) or 查看 用户名…...

OpenEuler安装内网穿透工具实现ssh连接openEuler系统

文章目录 1. 本地SSH连接测试2. openEuler安装Cpolar3. 配置 SSH公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 本文主要介绍在openEuler中安装Cpolar内网穿透工具实现远程也可以ssh 连接openEuler系统使用. 欧拉操作系统(openEuler, 简称“欧拉”…...

【效率工具】利用python进行本地知识库(PDF和WORK文件内容)的批量模糊搜索

目录 前言 一、为什么要进行本地文档的批量搜索? 二、如何去做呢?...

快速入门学习定时任务框架-xxljob

定时任务框架-xxljob 简介 主要用于分布式任务调度&#xff0c;可以将任务调度和执行分布在多个节点上。它提供了一个集中式的管理平台&#xff0c;支持动态添加、修改、删除任务&#xff0c;以及任务的分片执行&#xff0c;确保任务在分布式环境中的高可用性的一个框架 spr…...

Floyd(弗洛伊德)算法总结

知识概览 Floyd算法适合解决多源汇最短路问题&#xff0c;其中源点是起点&#xff0c;汇点是终点。时间复杂度是。 例题展示 题目链接 活动 - AcWing 系统讲解常用算法与数据结构&#xff0c;给出相应代码模板&#xff0c;并会布置、讲解相应的基础算法题目。https://www.acw…...

西南科技大学计算机网络实验二 (IP协议分析与以太网协议分析)

一、实验目的 通过分析由跟踪执行traceroute程序发送和接收捕获得到的IP 数据报,深入研究在IP 数据报中的各种字段,理解IP协议。基于ARP命令和Ethereal进行以太网帧捕获与分析,理解和熟悉ARP协议原理以及以太网帧格式。 二、实验环境 与因特网连接的计算机网络系统;主机操…...

SICP : The Elements of Programming

好的计算机编程语言应具备的三个特性 基础单元表达式&#xff0c;计算机编程语言最最最基础单元&#xff0c;理应具备的表达式组合的能力&#xff0c;能够通过基础单元表达式组合成更复杂的元素抽象的能力&#xff0c;能通过复杂的元素抽象成更高层的单元 基础单元表达式 加 …...

支付宝、学习强国小程序input、textarea数据双向绑定

前言 和 vue 的绑定有些区别&#xff0c;需要注意。直接 value"{{inputValue}}" 是无法双向绑定的。 正确思路 文档说的比较详细&#xff0c;不过没有组合使用的案例&#xff0c;需要自行理解。这里正确的方法是先用 value 绑定数据&#xff0c;再使用 onInput 事件…...

AI“百模大战”现状:向垂直、B端谋场景,算力仍是主要制约因素

文章目录 每日一句正能量前言AI&#xff08;人工智能&#xff09;大模型正“飞入”百姓家和行业中。向垂直、B端谋场景算力仍是主要制约因素构建“数据-模型-应用”飞轮后记 每日一句正能量 我们必须在失败中寻找胜利&#xff0c;在绝望中寻求希望。 前言 在当前快速发展的人工…...

手机上的软件怎么修改网络IP地址

在手机上修改网络IP地址通常需要通过以下两种方法&#xff1a; 1. 使用VPN&#xff08;虚拟私人网络&#xff09;或代理软件&#xff1a; 步骤如下&#xff1a; - 下载并安装一个可靠的VPN或代理软件到你的手机上。 - 打开VPN或代理软件&#xff0c;选择一个你希望获取IP地址…...

返回按钮点击坐标

返回按钮的点击坐标&#xff08;按钮本身的相对位置&#xff09;主要用于自绘控件时响应点击对应的数据变化。效果如下图&#xff1a; 代码实现 private void button1_MouseClick(object sender, MouseEventArgs e){Point p e.Location;this.Text p.ToString();} 利用 Mouse…...

arm32 arm64 读取PMCCNTR cpu cycle counter

ARM 的时钟周期计数保存在PMCCNTR 寄存器&#xff0c;不像x86用户态可以直接读取&#xff0c;需内核态使能&#xff0c;一种是在内核中使能&#xff0c;比如init&#xff0c;比较简单的是在模块中使能。 本来写了两个&#xff0c;arm32一个&#xff0c;arm64一个&#xff0c;方…...

vue 项目/备案网页/ip网页打包成 apk 安装到平板/手机(含vue项目跨域代理打包成apk后无法访问接口的解决方案)

下载安装HBuilder X编辑器 https://www.dcloud.io/hbuilderx.html 新建 5APP 项目 打开 HBuilder X&#xff0c;新建项目 此处项目名以 ‘test’ 为例 含跨域代理的vue项目改造 若 vue 项目中含跨域代理&#xff0c;如 vue.config.js module.exports {publicPath: "./&…...

面试复盘4——后端开发——一面

前言 本文主要用于个人复盘学习&#xff0c;因此为保障公平&#xff0c;所以本文不指出公司名&#xff0c;题目编号只是为了自己区别而已。对待面经&#xff0c;望读者还是更多从其中学习总结&#xff0c;而不是去碰原题。 面试岗位信息 北京某初创&#xff0c;go开发&#…...

使用 Postman 进行并发请求:实用教程与最佳实践

背景介绍 最近&#xff0c;我们发起了一个在线图书管理系统的项目。我负责的一个关键模块包括三个主要后台接口&#xff1a; 实现对books数据的检索。实施对likes数据的获取。通过collections端点访问数据。 应对高流量的挑战 在设计并部署接口时&#xff0c;我们不可避免地…...

河南工程学院第六届程序设计竞赛-A组-题解

更好的阅读体验 \color{red}{更好的阅读体验} 更好的阅读体验 远古时期的签到题 原题链接 描述&#xff1a; 远古时期奇妙的事情… 远古时期有一个比赛&#xff0c;里面有这样一道签到题&#xff1a; 给定一个正整数 N N N求这个整数转化为二进制后的数有多少位是 0 0 0。…...

韩版传奇 2 源码分析与 Unity 重制(二)客户端启动与交互流程

专题介绍 该专题将会分析 LOMCN 基于韩版传奇 2&#xff0c;使用 .NET 重写的传奇源码&#xff08;服务端 客户端&#xff09;&#xff0c;分析数据交互、状态管理和客户端渲染等技术&#xff0c;此外笔者还会分享将客户端部分移植到 Unity 和服务端用现代编程语言重写的全过…...

JVM面试——运行时数据区

一&#xff1a;JVM的运行时内存区域是怎样的? 根据Java虚拟机规范的定义&#xff0c;JVM的运行时内存区域主要由程序计数器、虚拟机栈、本地方法 栈、Java堆、方法区和以及运行时常量池组成。其中堆、方法区以及运行时常量池是线程之间共享的区域&#xff0c;而栈&#xff08…...

ssh工具 向指定的ssh服务器配置公钥

此文分享一个python脚本,用于向指定的ssh服务器配置公钥,以达到免密登录ssh服务器的目的。 效果演示 🔥完整演示效果 👇第一步,显然,我们需要选择功能 👇第二步,确认 or 选择ssh服务器 👇第三步,输入ssh登录密码,以完成公钥配置 👇验证,我们通过ssh登录…...

uni-app pages.json之globalStyle全局页面样式配置

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…...