当前位置 博文首页 > VBS 十六进制异或加密实现代码

    VBS 十六进制异或加密实现代码

    作者:admin 时间:2021-02-05 06:03

    效果图:



    代码都封装成函数了,方便调用:

    复制代码 代码如下:

    Key = "www-enun-net" '不要用数字

    Wscript.echo now & ", 加密: "
    MyData = ReadBin("test.jpg")
    EnData = Encoder(MyData)
    WriteBin "E_test.jpg", EnData
    Wscript.echo now & ", 加密: "

    Wscript.echo now & ", 解密: "
    MyData = ReadBin("E_test.jpg")
    UnData = Uncoder(MyData)
    WriteBin "U_test.jpg", UnData
    Wscript.echo now & ", 解密: "


    Function ReadBin(FileName)
     Dim Stream, ObjXML, MyNode
     Set ObjXML = CreateObject("Microsoft.XMLDOM")
     Set MyNode = ObjXML.CreateElement("binary")
     Set Stream = CreateObject("ADODB.Stream")
     MyNode.DataType = "bin.hex"
     Stream.Type = 1
     Stream.Open
     Stream.LoadFromFile FileName
     MyNode.NodeTypedValue = Stream.Read
     Stream.Close
     ReadBin = MyNode.Text
     Set MyNode = Nothing
     Set Stream = Nothing
     Set ObjXML = Nothing
    End Function

    Function WriteBin(FileName, BufferData)
     Dim Stream, ObjXML, MyNode
     Set ObjXML = CreateObject("Microsoft.XMLDOM")
     Set MyNode = ObjXML.CreateElement("binary")
     Set Stream = CreateObject("ADODB.Stream")
     MyNode.DataType = "bin.hex"
     MyNode.Text = BufferData
     Stream.Type = 1
     Stream.Open
     Stream.Write MyNode.NodeTypedValue
     Stream.SaveToFile FileName, 2
     Stream.Close
     Set stream = Nothing
     Set MyNode = Nothing
     Set ObjXML = Nothing
    End Function

    Function Encoder(Data)
     Dim K, M
     For n = 0 To Len(Key)-1
      K = K & Asc(Left(Right(key, Len(Key)-n), 1)) & "#"
     Next
     Data = UCase(Data)
     For i = 0 To Len(Data)-1
      M = Left(Right(Mid(Data, i+1, 1), Len(Data)-i), 1)
      For j = 0 To Len(Key)-1
       If i Mod Len(Key) = j  Then
        Encoder = Encoder & Hex((Asc(M) Xor Split(K, "#")(j)))
       End If
      Next
     Next
    End Function

    Function Uncoder(Data)
     Dim K
     For n = 0 To Len(Key)-1
      K = K & "#" & Asc(Left(Right(key, Len(Key)-n), 1)) & "#X"
     Next
     K = K & K
     Data = UCase(Data)
     For i = 1 To Len(Data) Step 2
      For j = 1 To Len(Key) * 2
       If i Mod Len(Key)*2 = j  Then
        Uncoder = Uncoder & Chr(Split(K, "#")(j) Xor ("&H" & Mid(Data, i, 2)))
       End If
      Next
     Next
    End Function

    js
下一篇:没有了