create_key.php

来自「通达OA2007SE源代码 非常好的」· PHP 代码 · 共 190 行

PHP
190
字号
<?
  include_once 'inc/auth.php';
  include_once 'inc/utility_all.php';
  echo '<html>
<head>
<title>初始化USB用户KEY</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body class="bodycolor" topmargin="5">
<object id="tdPassSC" name="tdPassSC" CLASSID="clsid:C7672410-309E-4318-8B34-016EE77D6B58"	CODEBASE="/inc/tdPass.cab#Version=1,00,0000"
	BORDER="0" VSPACE="0" HSPACE="0" ALIGN="TOP" HEIGHT="0" WIDTH="0"></object>
<object id="tdPass" name="t';
  echo 'dPass" CLASSID="clsid:0272DA76-96FB-449E-8298-178876E0EA89"	CODEBASE="/inc/tdPass.cab#Version=1,00,0000"
	BORDER="0" VSPACE="0" HSPACE="0" ALIGN="TOP" HEIGHT="0" WIDTH="0"></object>
';
  echo '<s';
  echo 'cript src="/inc/mytable.js"></script>
';
  echo '<s';
  echo 'cript src="/inc/marquee.js"></script>
';
  echo '<s';
  echo 'cript>
function GetKey(va)
{
   var a = new VBArray(va);
   return a.toArray().toString();
}
var xmlHttpObj=getXMLHttpObj();
var KEY_USERINFO;
var KEY_SN;
GET_USERKEY();
function READ_KEYSN()
{
	var theDevice=document.getElementById("tdPass");
  var bOpened = OpenDevice(theDevice);
  if(!bOpened)return false;
  //读取设备序列号
  try
  {
    KEY_SN=theDevice.GetStrProperty(7, 0, ';
  echo '0);
  }
  catch(ex)
  {
	  theDevice.CloseDevice();
	  alert("USB用户KEY初始化失败!");
	  location="user_new.php?DEPT_ID=';
  echo $DEPT_ID;
  echo '";
	}
}
function GET_USERKEY()
{
	READ_KEYSN();
  var theURL="get_userinfo.php?USER_ID=';
  echo $USER_ID;
  echo '&KEY_SN="+KEY_SN;
  xmlHttpObj.open("GET",theURL,true);
  var responseText="";
  xmlHttpObj.onreadystatechange=function()
  {
    if(xmlHttpObj.readyState==4)
    {
      KEY_USERINFO=xmlHttpObj.responseText;
      CREAT_KEY();
    }
  }
  xmlHttpObj.send(null)
}
function OpenDevice(theDevice)
{
   try
   {
      theDevice.GetLibVersion();
   }
   catch(ex)
   {
	    alert("';
  echo '您没有下载并正确安装USB用户KEY驱动程序");
	    location="user_new.php?DEPT_ID=';
  echo $DEPT_ID;
  echo '";
	 }
   try
   {
      theDevice.OpenDevice(1, "");
   }
   catch(ex)
   {
	    alert("您没有插人合法的USB用户KEY");
	    location="user_new.php?DEPT_ID=';
  echo $DEPT_ID;
  echo '";
	 }
   return true;
}
function CREAT_KEY()
{
	 var KEY_USERINFO_ARRY=KEY_USERINFO.split(",");
	 var theDevice=document.getElementById("tdPassSC");
   //打开设备
   var bOpened = OpenDevice(theDevice);
   if(!bOpened)
      return false;
   try
   {
   	  //写用户信息
   	  var USER_INFO=KEY_USERINFO_ARRY[0];
   	  var USER_CERTINFO=KEY_USERINFO_ARRY[1];
   	  var sign=OPEN_FILE';
  echo '(3);
   	  if(sign==1)theDevice.DeleteFile(0,3);
      theDevice.CreateFile(0,3,USER_INFO.length,2,0,0,7,2);
      theDevice.write(0,0,0,USER_INFO,USER_INFO.length);//
      theDevice.CloseFile();
      var key1;
      var key2;
      key1 = GetKey(VBGetKey(0,USER_CERTINFO,theDevice));
	    key2 = GetKey(VBGetKey(1,USER_CERTINFO,theDevice));
     //写个人私钥
     sign=OPEN_FILE(5);
 ';
  echo '  	 if(sign==1)theDevice.DeleteFile(0,5);
     theDevice.CreateFile(0,5,16,4,7,0,0,0);
     theDevice.write(1,0,0,key1,16);//
     theDevice.CloseFile();
     sign=OPEN_FILE(6);
   	 if(sign==1)theDevice.DeleteFile(0,6);
     theDevice.CreateFile(0,6,16,4,7,0,0,0);
     theDevice.write(1,0,0,key2,16);//
     theDevice.CloseFile();
    }
   catch(ex)
   {
	    theDevice.CloseDevice();
';
  echo '	    alert("USB用户KEY初始化失败!请重新初始化KEY!");
	    location="user_new.php?DEPT_ID=';
  echo $DEPT_ID;
  echo '";
	    return false;
	 }
	 theDevice.CloseDevice();
	 alert("USB用户KEY初始化成功!");
	 location="user_new.php?DEPT_ID=';
  echo $DEPT_ID;
  echo '";
}
function OPEN_FILE(fileid)
{
	var theDevice=document.getElementById("tdPass");
  var bOpened = OpenDevice(theDevice);
  if(!bOpened)return -1;
  //读取设备序列号
  try
  {
   theDevice.OpenFile (0,fileid);
   theDevice.CloseFile();
   return 1;
  }
  catch(ex)
  {
	  theDevice.CloseDevice();
	  return 0;
	}
}
</script>
';
  echo '<s';
  echo 'cript language="VBScript">
\'用VB函数获取到Key1和Key2
function VBGetKey(WhichKey,CertKey,theDevice)
		On Error Resume Next
		dim key
		theDevice.Soft_MD5HMAC WhichKey,0,CertKey,key
		If Err Then
			MsgBox ("VBGetKey:No.1\\nError#" & Hex(Err.number and &HFFFF) & " \\nDescription:" & Err.description)
			ePass.CloseDevice
			Exit function
		End If
    VBGetKey = Array(key)
End function
</s';
  echo 'cript>
<div class=big1>正在初始化USB用户KEY,请稍候...</div>
</body>
</html>';
?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?