zoukankan      html  css  js  c++  java
  • 怎样给文件加密最安全?

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

  • 相关阅读:
    树莓派也跑Docker和.NET Core
    使用iSCSI协议挂载网络磁盘,电脑瞬间扩大一个T的容量!
    Azure DevOps Server (TFS)免费吗?
    明确架构目标
    MMN实用架构过程概览
    设计恰如其分的架构
    对象的自治和行为的扩展与适配
    Message Chains与Fluent Interface
    如何减少代码的量
    《软件框架设计的艺术》书评
  • 原文地址:https://www.cnblogs.com/see7di/p/2240095.html
Copyright © 2011-2022 走看看