帮忙将vbScript 转成 javaScript,谢谢高手们,在线等

时间:2022-08-27 07:26:23
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*" %>
<%@ page session="true"%>

<%
String RndData="";
int nRndLen;
char Upper = '9';
char Lower = '0';
Random r = new Random();
for(int i=0; i<15; i++)
{
   int tempval = (int)((int)Lower + (r.nextFloat() * ((int)(Upper - Lower))));
   RndData += new Character((char)tempval).toString();
}
session.setAttribute("RandomData",RndData);
nRndLen = RndData.length();
%>

<HTML>
<HEAD>
<TITLE>Logon - HaiKey ActiveX Test [JSP]</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<STYLE TYPE="text/css">
<!--
@import "test.css";
-->
</STYLE>
<script language=VBScript>
Dim FirstDigest
Dim Digest
dim EnData
Digest= "aaaaaaaaa"

dim bErr

sub ShowErr(Msg)
bErr = true
MsgBox Msg
' Document.Writeln "<FONT COLOR='#FF0000'>"
' Document.Writeln "<P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P><P ALIGN='CENTER'><B>ERROR:</B>"
' Document.Writeln "<P>&nbsp;</P><P ALIGN='CENTER'>"
' Document.Writeln Msg
' Document.Writeln " failed, and returns 0x" & hex(Err.number) & ".<br>"
' Document.Writeln "<P>&nbsp;</P><P>&nbsp;</P><P>&nbsp;</P>"
' Document.Writeln "</FONT>"
End Sub

function Validate()
Digest = "aaaaaaaaaa"
On Error Resume Next
Dim TheForm
Set TheForm = Document.forms("ValidForm")
If Len(TheForm.UserPIN.Value) < 4  Then
MsgBox "PIN empty or user pin length less than 4 or so pin length less than 6!!"  
Validate = FALSE
Exit Function
End If

bErr = false

'Let detecte whether the haikey Safe Active Control loaded.
'If we call any method and the Err.number be set to &H1B6, it 
'means the hakey Safe Active Control had not be loaded.
dim LibVer
LibVer = htactx.GetLibVersion
If Err.number <> 0 Then

ShowErr "Load haikey Safe Active Control failed"
Validate = false
Exit function
Else
'MsgBox "Load ActiveX success!"
dim hCard
hCard = 0
hCard = htactx.OpenDevice(1)'打开设备
If Err.number<>0 or hCard = 0 then
ShowErr "Open first haikey failed."
Validate = false
Exit function
End if
'MsgBox "open device success!"

htactx.VerifyUserPin hCard, CStr(TheForm.UserPIN.Value)'校验口令
If Err.number<>0 Then
ShowErr "Verify User PIN Failure!!!"
Validate = false
htactx.CloseDevice hCard
Exit function
End if
'MsgBox "Verify user pin success!"

dim UserName
UserName = htactx.GetUserName(hCard)'获取用户名
If Err.number<>0 Then
ShowErr "Get User Name Failure!!!"
Validate = false
htactx.CloseDevice hCard
Exit function
End if

Digest = htactx.HTSHA1("<%=(String)session.getAttribute("RandomData")%>",<%=nRndLen%>)
If Err.number<>0 Then
ShowErr "SHA1 failed."
Validate = false
htactx.CloseDevice hCard
Exit function
End if
'MsgBox "SHA1 success!" + Digest

Digest = Digest&"04040404"'对SHA1数据进行补码
EnData = htactx.HTCrypt(hCard,0 ,0,Digest, len(Digest))'DES3加密SHA1后的数据
If Err.number<>0 Then 
ShowErr "HashToken compute"
Validate = false
htactx.CloseDevice hCard
Exit function
End if
'MsgBox "Encrypt success!" + EnData
htactx.CloseDevice hCard
'MsgBox "close device success!"
DigestID.innerHTML = "<input type='hidden' name='EncData' Value='" & EnData & "'>"
snID.innerHTML = "<input type='hidden' name='UserID' Value='" & UserName & "'>"
End If
End function

</script>

<script language=VBScript>
function ChangUserPIN()
On Error Resume next
Dim ChangeForm
Set ChangeForm = Document.forms("ValidForm")

If (ChangeForm.NewPIN.value) = (ChangeForm.AffirmPIN.value) Then
MsgBox "两次输入的新PIN码一至!"
htactx.CloseDevice hCard

Else
MsgBox "两次输入的新PIN码不一至"
htactx.CloseDevice hCard
Exit function
End if

Dim LibVer
LibVer = htactx.GetLibVersion
If Err.number <> 0 Then
MsgBox "加载客户端控件失败"
Exit function
End If
'MsgBox "加载客户端控件成功!"

Dim hCard
hCard = 0
hCard = htactx.OpenDevice(1)'打开设备
If Err.number<>0 or hCard = 0 Then
MsgBox "打开硬件锁失败!"
Exit function
End If
'MsgBox "打开硬件锁成功!"

htactx.VerifyUserPin hCard, CStr(ChangeForm.OldPIN.Value)'校验口令
If Err.number<>0 Then
MsgBox "PIN码验证失败!"
htactx.CloseDevice hCard
Exit function
End If
'MsgBox "PIN码验证成功!"

//改PIN码
htactx.ChangeUserPin hCard, CStr(ChangeForm.OldPIN.value), CStr(ChangeForm.NewPIN.value)
If Err.number<>0 Then
MsgBox "修改PIN码失败!"
htactx.CloseDevice hCard
Exit function
End If
MsgBox "修改PIN码成功"

htactx.CloseDevice hCard
'MsgBox "关闭硬件锁成功!"

End function
</script>

</HEAD>
<BODY>
<P></P>
<P></P>
<P></P>

<H1 ALIGN="center">
<OBJECT id=htactx name=htactx 
classid="clsid:FB4EE423-43A4-4AA9-BDE9-4335A6D3C74E" codebase="HTActX.cab#version=1,0,0,1" style="HEIGHT: 0px; WIDTH: 0px"></OBJECT>
HaiKey Active Control<BR>Demo Program for JSP</H1>
<TABLE WIDTH="600" BORDER="0" ALIGN="center">
  <TR>
    <TD>
      <P ALIGN="center">Welcome to HaiKey Active Control demonstration program for JSP.</P>


<SCRIPT id=clientEventHandlersVBS language=vbscript>
<!--
'Now you had get the result of HASH compute and the random data
' use to HASH compute. You should post these data to server and
' do verify operation.
Document.Writeln "<P>&nbsp;</P><P ALIGN='CENTER'>To logon, you must input your PIN.</P>"
Document.Writeln "<P>&nbsp;</P><P>&nbsp;</P></TD></TR><TR><TD>"
Document.Writeln "<FORM id=ValidForm METHOD='post' ACTION='verify.jsp' onsubmit='return Validate();' language='jscript'>"

'Post the result of HASH compute by HaiKey can use by server.

Document.Writeln "<span id=DigestID></span>"
Document.Writeln "<span id=snID></span>"
'Document.Writeln "<input type='hidden' name='Digest' Value='" & Digest & "'>"

'Create a table and let user input the PIN.
Document.Writeln "<TABLE WIDTH='250' BORDER='1' ALIGN='center' CELLSPACING='0' BORDERCOLORDARK='#E7EBFF' BORDERCOLORLIGHT='#000000'>"
'If you add so pin verify ,you maybe add these codes as these
'Document.Writeln "<TR><TD ALIGN='right'>Identity:</TD><TD>"
'Document.Writeln "<select name='Identity'>"
'Document.Writeln "<option  value='0'>User PIN</option>"
'Document.Writeln "<option value='1'>So PIN</option>"
'Document.Writeln "</select>"
'Document.Writeln "</TD></TR>"

Document.Writeln "<TR><TD ALIGN='right'>User PIN:</TD><TD><INPUT TYPE='password' NAME='UserPIN' CLASS='inputtext'></TD></TR>"


Document.Writeln "</TABLE><P>&nbsp;</P><P ALIGN='center'>"
Document.Writeln "<INPUT TYPE='submit' NAME='Submit' VALUE='Let me in' CLASS='inputbtn'>"
Document.Writeln "<INPUT TYPE='reset' NAME='Reset' VALUE='Re-input' CLASS='inputbtn'></P>"
Document.Writeln "<TR><TD ALIGN='right'>旧PIN:</TD><TD><INPUT TYPE='password' NAME='OldPIN' CLASS='inputtext'></TD></TR>"
Document.Writeln "<TR><TD ALIGN='right'>新PIN:</TD><TD><INPUT TYPE='password' NAME='NewPIN' CLASS='inputtext'></TD></TR>"
Document.Writeln "<TR><TD ALIGN='right'>确认新PIN:</TD><TD><INPUT TYPE='password' NAME='AffirmPIN' CLASS='inputtext'></TD></TR>"

Document.Writeln "<TR><TD ALIGN='center'></TD><TD><INPUT TYPE=button NAME='Change' VALUE='Change user PIN' onClick='ChangUserPIN'></TD></TR></FORM>"



-->
</SCRIPT>

</TD>
  </TR>
</TABLE>
<H2>&nbsp;</H2>
<P></P>


</BODY>
</HTML>
























































1 个解决方案

#1


求大家帮个忙吧,实在是不会啊

#1


求大家帮个忙吧,实在是不会啊