怎样给文件加密最安全?

编程10000问 2016-12-11

<%@ Language = VBScript%><%

Response.Expires = 0

p = "abcdefg"Set TestPWD = New CPassWordTestPWD.EnPWD pTestPWD.UnPWD TestPWD.ShowPWD(True)k = TestPWD.ShowPWD(True)l = TestPWD.ShowPWD(False)Set TestPWD = NothingWith Response.Write "原文:" & p & "<br>".Write "加密后:" & k & "<br>".Write "解密后:" & L & "<br>"End WithClass CPassWordPrivate CEnPWD,CUnPWDPrivate Function My_Hex(My_Hex_Source)  My_Hex = Hex(My_Hex_Source)  If Len(My_Hex) = 1 Then   My_Hex = "0" & My_Hex  End IfEnd FunctionPrivate 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 FunctionPrivate 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 IfEnd FunctionPublic Property Get ShowPWD(EnP)

'输出.  If EnP Then   ShowPWD = CEnPWD  Else   ShowPWD = CUnPWD  End IfEnd PropertySub 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 ifEnd SubSub 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_StringEnd SubEnd Class

%>

相关推荐