⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 epassfunction.asp

📁 很好的一个OA系统,界面和功能都不错,测试无错~
💻 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 + -