网站首页 | 站长论坛 | 免费空间申请 | 站长下载 | 站长博客 | 商业主机 | 免费空间推荐站点 | 免费空间排行榜 | 我们知道
发新话题
打印

[02-01] 给文件加密的一种方法

[02-01] 给文件加密的一种方法

这里提供了文件加密的一段小程序,以供大家参考.  
<%@ Language = VBScript%>  
<%  
Response.Expires = 0  

p = "abcdefg"  
Set TestPWD = New CPassWord  
TestPWD.EnPWD p  
TestPWD.UnPWD TestPWD.ShowPWD(True)  

k = TestPWD.ShowPWD(True)  
l = TestPWD.ShowPWD(False)  
Set TestPWD = Nothing  

With Response  
.Write "原文:" & p & "<br>"  
.Write "加密后:" & k & "<br>"  
.Write "解密后:" & L & "<br>"  
End With  


Class CPassWord  
Private CEnPWD,CUnPWD  

Private Function My_Hex(My_Hex_Source)  
My_Hex = Hex(My_Hex_Source)  
If Len(My_Hex) = 1 Then  
My_Hex = "0" & My_Hex  
End If  
End Function  

Private Function My_UnHex(My_UnHex_Source)  
If Len(My_UnHex_Source) = 2 Then  
Temp_Value = My_HexReplace(Left(My_UnHex_Source,1))  
End If  
My_UnHex = Temp_Value * 16 + My_HexReplace(Right(My_UnHex_Source,1))  
End Function  

Private Function My_HexReplace(My_HexReplace_Source)  
If Asc(My_HexReplace_Source) > 64 Then  
My_HexReplace = Asc(UCase(My_HexReplace_Source)) - 55  
Else  
My_HexReplace = Asc(My_HexReplace_Source) - 48  
End If  
End Function  

Public Property Get ShowPWD(EnP)  
' 输出  
If EnP Then  
ShowPWD = CEnPWD  
Else  
ShowPWD = CUnPWD  
End If  
End Property  

Sub EnPWD(EnPWD_Source)  
if EnPWD_Source = "" then  
CEnPWD = 0  
Exit Sub  
else  
Randomize  
Key = Rnd * 256  
While Key = 0  
Key = Rnd * 256  
Wend  
For i=1 To Len(EnPWD_Source)  
Temp_String = Key Xor Asc(Mid(EnPWD_Source,i,1))  
Crc = Crc + Temp_String  
CEnPWD = CEnPWD + My_Hex(Temp_String)  
Next  
CEnPWD = My_Hex(Key) + StrReverse(CEnPWD) + My_Hex(Crc Mod 256)  
End if  
End Sub  

Sub UnPWD(UnPWD_Source)  
If Len(UnPWD_Source) < 6 Or Len(UnPWD_Source) Mod 2 = 1 then  
CUnPWD = 0  
Exit Sub  
End If  
Old_Key = My_UnHex(Left(UnPWD_Source,2))  
Old_Crc = My_UnHex(Right(UnPWD_Source,2))  
Old_String = StrReverse(Mid(UnPWD_Source,3,Len(UnPWD_Source)-4))  
For i=1 To Len(Old_String) - 1 Step 2  
Temp_Value = My_UnHex(Mid(Old_String,i,2))  
Crc_Temp = Crc_Temp + Temp_Value  
Temp_String = Temp_String + Chr(Temp_Value Xor Old_Key)  
Next  
If Old_Crc <> (Crc_Temp Mod 256) Then  
CUnPWD = 403  
Exit Sub  
End If  
CUnPWD = Temp_String  
End Sub  
End Class  
%>
权力打造广东省第一个中学生联盟论坛 晴天论坛:http://bbs.pcst.cn/

TOP

发新话题