怎样给文件加密最安全?

<%@ 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
%>

你可能感兴趣的:(文件)