?? epassfunction.asp
字號:
<%
'返回ePASS錯誤信息
Function Return_Error_Info(Error_Code)
Return_Error_Info=ePass.ErrToStr(Error_Code)
End Function
'取得ePASS硬件信息
'InfoStr(1)---ePass固件版本號
'InfoStr(2)---ePassAPI函數庫版本號產品批號
'InfoStr(3)---ePass產品批號
'InfoStr(4)---ePass存貯空間總量
'InfoStr(5)---ePass內置算法的類型
'InfoStr(6)---ePass硬件序列號
Function Get_Epass_HardWare_Info()
Dim ctx,InfoStr(6)
Set ctx = CreateObject("EpsModu.EpsCtx")
InfoStr(1)=Cstr(ctx.VerMajor)+"."+Cstr(ctx.VerMinor)
InfoStr(2)=Cstr(ctx.LibVer)
InfoStr(3)=Cstr(ctx.ProdCode)
InfoStr(4)=Cstr(ctx.MemSize)
InfoStr(5)=Cstr(ctx.Capabilities)
InfoStr(6)=Hex(ctx.SerialNumber(1))+Hex(ctx.SerialNumber(0))
Set ctx=Nothing
Get_Epass_HardWare_Info=InfoStr
End Function
'在根目錄下創建一個子目錄
Function Create_Dir(DirID)
Dim ErrCode
ErrCode=ePass.CreateDir(DirID)
Create_Dir=ErrCode
End Function
'刪除目錄
Function Delete_Dir(DirID)
Dim ErrCode
ErrCode=ePass.DeleteDir(DirID)
Delete_Dir=ErrCode
End Function
'刪除所有的文件和目錄,需要管理員級別權限
Function Delete_All_Files()
Dim ErrCode
ErrCode=ePass.DeleteAllFiles()
Delete_All_Files=ErrCode
End Function
'刪除指定目錄下的文件
Function Delete_File(DirID,FileID)
Dim ErrCode
ErrCode=ePass.DeleteFile(DirID,FileID)
Delete_File=ErrCode
End Function
'控制LED指示燈的點亮狀態
Function Led_Control(LedStatus)
Dim ErrCode
Errcode=ePass.LedControl(LedStatus)
Led_Control=ErrCode
End Function
'建立一個文件
'DirId---目錄ID號
'FileId---文件ID號
'FileSize---文件大小
'FileType---創建文件類型
'ReadType---文件讀屬性
'WriteType---文件寫屬性
'CryptType---文件加密屬性
Function Create_File(DirId,FileId,FileSize,FileType,ReadType,WriteType,CryptType)
Dim FileObject,ErrCode
Set FileObject=CreateObject("EpsModu.EpsFileInfo")
FileObject.DirId=DirId
FileObject.Id=FileId
FileObject.Size=FileSize
FileObject.Type=FileType
FileObject.ReadAccess=ReadType
FileObject.WriteAccess=WriteType
FileObject.CryptAccess=CryptType
ErrCode=ePass.CreateFile()
Set FileObject=Nothing
Create_File=ErrCode
End Function
'打開一個文件
'DirId---目錄ID號
'FileId---文件ID號
'FileInfo(1)---錯誤代碼
'FileInfo(2)---文件大小(數值型)
'FileInfo(3)---文件類型(十六進制)
'FileInfo(4)---文件讀屬性(邏輯型)
'FileInfo(5)---文件寫屬性(邏輯型)
'FileInfo(6)---文件加密屬性(邏輯型)
Function Open_File(DirId,FileId)
Dim ctx,FileInfo(6),ErrCode
Set ctx = CreateObject("EpsModu.EpsCtx")
ErrCode=ePass.SelectFile(DirId,FileId)
FileInfo(1)=ErrCode
If ErrCode=0 Then
FileInfo(2)=ctx.FileSize
FileInfo(3)=ctx.FileType
If ctx.FileAccess And EPS_ACCESS_READ Then
FileInfo(4)=True
Else
FileInfo(4)=False
End If
If ctx.FileAccess And EPS_ACCESS_WRITE Then
FileInfo(5)=True
Else
FileInfo(5)=False
End If
If ctx.FileAccess And EPS_ACCESS_CRYPT Then
FileInfo(6)=True
Else
FileInfo(6)=False
End If
End If
Set ctx=Nothing
Open_File=FileInfo
End Function
'讀文件內容
'Read_Offset---讀操作的起點
'Read_Length---所要讀取的數據長度
Function Read_File(Read_Offset,Read_Length)
Dim ErrCode,i,sBuf,sText,GetInfo(3)
ErrCode=ePass.ReadFile(Read_Offset,Read_Length)
If ErrCode=0 Then
For i=0 To ePass.FileBufLen-1
sText=sText+Chr(ePass.FileBuf(i))
sBuf=sBuf+Cstr(ePass.FileBuf(i))
Next
End If
GetInfo(1)=ErrCode
GetInfo(2)=sBuf
GetInfo(3)=sText
Read_File=GetInfo
End Function
'向文件中定入內容
'Write_Offset---寫操作的起點
'Write_Length---所要寫入的內容的長度
Function Write_File(Write_Offset,Write_Length)
Dim i,ErrCode
For i=0 to Write_Length
ePass.FileBuf(i)=i+65
Next
ErrCode=ePass.WriteFile(Write_Offset,Write_Length)
Write_File=ErrCode
End Function
'獲得全局控制信息
Function Get_Access_Info()
Dim ai,ErrCode,AccessInfo(5)
Set ai=CreateObject("EpsModu.EpsAccessInfo")
ErrCode=ePass.GetAccessSettings
AccessInfo(1)=ErrCode
If ErrCode=0 Then
AccessInfo(2)=ai.CreateAccess
AccessInfo(3)=ai.DeleteAccess
AccessInfo(4)=ai.CurPin
AccessInfo(5)=ai.MaxPin
End If
Set ai=Nothing
Get_Access_Info=AccessInfo
End Function
'設置全局創建屬性,該操作需要管理員權限
Function Set_Access(Create_Access,Delete_Access,CurPin_Info,MaxPin_Info)
Dim ai,ErrCode
Set ai=CreateObject("EpsModu.EpsAccessInfo")
ai.CreateAccess=Create_Access
ai.DeleteAccess=Delete_Access
ai.CurPin=CurPin_Info
ai.MaxPin=MaxPin_Info
ErrCode=ePass.SetAccessSettings
Set ai=Nothing
Set_Access=ErrCode
End Function
'驗證PIN碼,返回0表示成功,否則表示失敗
Function Check_Pin(Pin_Code)
Dim ErrCode
Pin_Code="&h"+Pin_Code
ErrCode=ePass.VerifyPin(CLng(Pin_Code))
Check_Pin=ErrCode
End Function
'驗證管理員密碼,返回0表示成功,否則表示失敗
Function Check_Master(Master_Code)
Dim ErrCode
ErrCode=ePass.VerifyMasterKey(Master_Code)
Check_Master=ErrCode
End Function
'修改PIN碼,返回0表示成功,否則表示失敗
Function Change_Pin(Pin_Code)
Dim ErrCode
Pin_Code="&h"+Pin_Code
ErrCode=ePass.ModifyPin(CLng(Pin_Code))
Change_Pin=ErrCode
End Function
'修改管理員密碼,返回0表示成功,否則表示失敗
Function Change_Master(Master_Code)
Dim ErrCode
ErrCode=ePass.ModifyMasterKey(Master_Code)
Change_Master=ErrCode
End Function
'用于ePass應用中服務端計算128位數據摘要的接口函數,計算過程等效于客戶端的ePass,無需硬件
'Text_Str---隨機字符串
'Key_Str---Key密鑰串
Function Get_Soft_HmacMd5(Text_Str,Key_Str)
Dim i,Text_Len,Key_Len,One_Str,Buf
Text_Len=Len(Text_Str)
Key_Len=Len(Key_Str)
For i=1 to Text_Len'輸入計算所有的字符串
One_Str=Mid(Text_Str,i,1)
ePass.TextBuf(i-1)=Asc(One_Str)
Next
For i=1 to Key_Len'輸入計算所有的密鑰串
One_Str=Mid(Key_Str,i,1)
ePass.KeyBuf(i-1)=Asc(One_Str)
Next
ePass.SoftHmacMd5 Text_Len,Key_Len
For i=0 to 15
Buf=Buf+Hex(ePass.DigestBuf(i))
Next
Get_Soft_HmacMd5=Buf
End Function
'利用ePass中已生成的密鑰文件進行計算128位數據摘要
'KeyId1---key文件1的ID號
'KeyDir2---key文件2所在目錄ID號
'KeyId2---key文件2的ID號
'Key_Str---key密鑰字符串
'Text_Str---隨機字符串
'Buf(1)---錯誤代碼
'Buf(2)---128位數據摘要
Function Get_HmacMd5(KeyDir1,KeyId1,KeyDir2,KeyId2,Text_Str)
Dim i,ErrCode,Text_Len,One_Str,Buf(2)
Text_Len=Len(Text_Str)
For i=1 to Text_Len
One_Str=Mid(Text_Str,i,1)
ePass.TextBuf(i-1)=Asc(One_Str)
Next
ErrCode=ePass.HmacMd5(KeyDir1,KeyId1,KeyDir2,KeyId2,Text_Len)
Buf(1)=ErrCode
If ErrCode=0 Then
For i=0 to 15
Buf(2)=Buf(2)+Hex(ePass.DigestBuf(i))
Next
End If
Get_HmacMd5=Buf
End Function
'建立密鑰文件
'KeyDir1---key文件1所在目錄ID號
'KeyId1---key文件1的ID號
'KeyDir2---key文件2所在目錄ID號
'KeyId2---key文件2的ID號
'Key_Str---key密鑰字符串
'Key_Crypt_Type---key加密方式
Function Create_Key_File(KeyDir1,KeyId1,KeyDir2,KeyId2,Key_Str,Key_Crypt_Type)
Dim i,ErrCode,Key_Len,One_Str
Key_Len=Len(Key_Str)
For i=1 to Key_Len
One_Str=Mid(Key_Str,i,1)
ePass.KeyBuf(i-1)=Asc(One_Str)
Next
ePass.KeyCryptType=Key_Crypt_Type
ErrCode=ePass.CreateKeyFile(KeyDir1,KeyId1,KeyDir2,KeyId2,Key_Len)
Create_Key_File=ErrCode
End Function
'重置設備
Function Reset_Epass()
Dim ErrCode
ErrCode=ePass.ResetDevice()
Reset_Epass=ErrCode
End Function
'取得一個64位隨機數
Function Get_Rand_Number()
Dim i,sRand
ePass.GetChallenge
For i=0 to 7
sRand=sRand+Hex(ePass.ChallengeBuf(i))
Next
Get_Rand_Number=sRand
End Function
%>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -