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 + -
显示快捷键?