| 给文件加密的一种方法 |
|
来源:互联网 |
时间:2005-10-04 |
浏览:
相关评论 |
报告错误 |
发布文章
|
【字号:大 | 中 | 小】
【背景色
】
|
|
这里提供了文件加密的一段小程序,以供大家参考. 
<%@ 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 
%>
|
|
 |
| |
|
|
|
|