|
楼主 |
发表于 2018-4-16 14:15:16
|
显示全部楼层
湖北省武汉市
Function EnCodeHandle(pStr As String) As String
Dim A As Long, B As Long, C As Long, D As Long, i As Integer, P5C As Byte, P64 As Byte, P6C As Byte, P18 As Long
Dim ECX As Long, EDX As Long, EAX As Long, EBX As Long
For i = 0 To 15
P28(i) = 0
Next
For i = 0 To Len(pStr) - 1
P28(i) = CLng(Asc(Mid(pStr, i + 1, 1))) And &HFF&
Next
A = A Or CLng("&H" & Hex(P28(0)))
A = A Or CLng("&H" & Hex(P28(1)) & "00")
A = A Or CLng("&H" & Hex(P28(2)) & "0000")
A = A Or CLng("&H" & Hex(P28(3)) & "000000")
B = B Or CLng("&H" & Hex(P28(4)))
B = B Or CLng("&H" & Hex(P28(5)) & "00")
B = B Or CLng("&H" & Hex(P28(6)) & "0000")
B = B Or CLng("&H" & Hex(P28(7)) & "000000")
C = C Or CLng("&H" & Hex(P28(8)))
C = C Or CLng("&H" & Hex(P28(9)) & "00")
C = C Or CLng("&H" & Hex(P28(10)) & "0000")
C = C Or CLng("&H" & Hex(P28(11)) & "000000")
D = D Or CLng("&H" & Hex(P28(12)))
D = D Or CLng("&H" & Hex(P28(13)) & "00")
D = D Or CLng("&H" & Hex(P28(14)) & "0000")
D = D Or CLng("&H" & Hex(P28(15)) & "000000")
A = A Xor &H63573231
B = B Xor &H36737751
C = C Xor &H7464596D
D = D Xor &H34334E43
'MsgBox Hex(A) & vbCrLf & Hex(B) & vbCrLf & Hex(C) & vbCrLf & Hex(D)
P18 = 4
For i = 1 To 9
P28(0) = A And &HFF&
P28(1) = ((A And &HFF00) / &H100) And &HFF&
P28(2) = ((A And &HFF0000) / &H10000) And &HFF&
P28(3) = ((A And &HFF000000) / &H1000000) And &HFF&
P28(4) = B And &HFF&
P28(5) = ((B And &HFF00) / &H100) And &HFF&
P28(6) = ((B And &HFF0000) / &H10000) And &HFF&
P28(7) = ((B And &HFF000000) / &H1000000) And &HFF&
P28(8) = C And &HFF&
P28(9) = ((C And &HFF00) / &H100) And &HFF&
P28(10) = ((C And &HFF0000) / &H10000) And &HFF&
P28(11) = ((C And &HFF000000) / &H1000000) And &HFF&
P28(12) = D And &HFF&
P28(13) = ((D And &HFF00) / &H100) And &HFF&
P28(14) = ((D And &HFF0000) / &H10000) And &HFF&
P28(15) = ((D And &HFF000000) / &H1000000) And &HFF&
P5C = P28(5)
P64 = P28(&HA)
A = BASE98(P28(&HF)) Xor BASE7C(P64) Xor BASE60(P5C) Xor BASE44(P28(0)) Xor BASE17C(P18)
P5C = P28(9)
P64 = P28(&HE)
P6C = P28(3)
B = BASE17C(P18 + 1) Xor BASE98(P6C) Xor BASE7C(P64) Xor BASE60(P5C) Xor BASE44(P28(4))
P5C = P28(&HD)
P64 = P28(2)
P6C = P28(7)
C = BASE17C(P18 + 2) Xor BASE98(P6C) Xor BASE7C(P64) Xor BASE60(P5C) Xor BASE44(P28(8))
P5C = P28(1)
P64 = P28(6)
P6C = P28(&HB)
D = BASE17C(P18 + 3) Xor BASE98(P6C) Xor BASE7C(P64) Xor BASE60(P5C) Xor BASE44(P28(&HC))
P18 = P18 + 4
'MsgBox Hex(A) & vbCrLf & Hex(B) & vbCrLf & Hex(C) & vbCrLf & Hex(D)
Next i
P28(0) = A And &HFF&
P28(1) = ((A And &HFF00) / &H100) And &HFF&
P28(2) = ((A And &HFF0000) / &H10000) And &HFF&
P28(3) = ((A And &HFF000000) / &H1000000) And &HFF&
P28(4) = B And &HFF&
P28(5) = ((B And &HFF00) / &H100) And &HFF&
P28(6) = ((B And &HFF0000) / &H10000) And &HFF&
P28(7) = ((B And &HFF000000) / &H1000000) And &HFF&
P28(8) = C And &HFF&
P28(9) = ((C And &HFF00) / &H100) And &HFF&
P28(10) = ((C And &HFF0000) / &H10000) And &HFF&
P28(11) = ((C And &HFF000000) / &H1000000) And &HFF&
P28(12) = D And &HFF&
P28(13) = ((D And &HFF00) / &H100) And &HFF&
P28(14) = ((D And &HFF0000) / &H10000) And &HFF&
P28(15) = ((D And &HFF000000) / &H1000000) And &HFF&
P5C = P28(5)
P64 = P28(&HA)
ECX = BASEB4(P64)
EDX = BASEB4(P28(0))
ECX = ECX And &HFF0000
EDX = EDX And &HFF&
ECX = ECX Xor EDX
EDX = BASEB4(P28(&HF))
EDX = EDX And &HFF000000
ECX = ECX Xor EDX
EAX = BASEB4(P5C)
EAX = EAX And &HFF00&
ECX = ECX Xor EAX
ECX = ECX Xor BASE17C(P18)
A = ECX
P5C = P28(9)
P64 = P28(&HE)
P6C = P28(3)
EDX = BASEB4(P64)
ECX = BASEB4(P28(4))
EDX = EDX And &HFF0000
ECX = ECX And &HFF&
EDX = EDX Xor ECX
ECX = BASEB4(P6C)
ECX = ECX And &HFF000000
EDX = EDX Xor ECX
EAX = BASEB4(P5C)
EAX = EAX And &HFF00&
EBX = BASE17C(P18 + 1)
EDX = EDX Xor EAX
EDX = EDX Xor EBX
B = EDX
P5C = P28(&HD)
P64 = P28(2)
P6C = P28(7)
ECX = BASEB4(P64)
EDX = BASEB4(P28(8))
ECX = ECX And &HFF0000
EDX = EDX And &HFF&
ECX = ECX Xor EDX
EDX = BASEB4(P6C)
EDX = EDX And &HFF000000
ECX = ECX Xor EDX
EAX = BASEB4(P5C)
EAX = EAX And &HFF00&
EBX = BASE17C(P18 + 2)
ECX = ECX Xor EAX
ECX = ECX Xor EBX
C = ECX
P5C = P28(1)
P64 = P28(6)
P6C = P28(&HB)
EDX = BASEB4(P64)
ECX = BASEB4(P28(&HC))
EDX = EDX And &HFF0000
ECX = ECX And &HFF&
EDX = EDX Xor ECX
ECX = BASEB4(P6C)
ECX = ECX And &HFF000000
EDX = EDX Xor ECX
EAX = BASEB4(P5C)
EAX = EAX And &HFF00&
EBX = BASE17C(P18 + 3)
EDX = EDX Xor EAX
EDX = EDX Xor EBX
D = EDX
P28(0) = A And &HFF&
P28(1) = ((A And &HFF00) / &H100) And &HFF&
P28(2) = ((A And &HFF0000) / &H10000) And &HFF&
P28(3) = ((A And &HFF000000) / &H1000000) And &HFF&
P28(4) = B And &HFF&
P28(5) = ((B And &HFF00) / &H100) And &HFF&
P28(6) = ((B And &HFF0000) / &H10000) And &HFF&
P28(7) = ((B And &HFF000000) / &H1000000) And &HFF&
P28(8) = C And &HFF&
P28(9) = ((C And &HFF00) / &H100) And &HFF&
P28(10) = ((C And &HFF0000) / &H10000) And &HFF&
P28(11) = ((C And &HFF000000) / &H1000000) And &HFF&
P28(12) = D And &HFF&
P28(13) = ((D And &HFF00) / &H100) And &HFF&
P28(14) = ((D And &HFF0000) / &H10000) And &HFF&
P28(15) = ((D And &HFF000000) / &H1000000) And &HFF&
For i = 0 To 15
If Len(Hex(P28(i))) = 1 Then EnCodeHandle = EnCodeHandle & "0"
EnCodeHandle = EnCodeHandle & Hex(P28(i))
Next
'MsgBox EnCodeHandle
'MsgBox Hex(A) & vbCrLf & Hex(B) & vbCrLf & Hex(C) & vbCrLf & Hex(D)
'MsgBox Hex(P28(0)) & vbCrLf & Hex(P28(1)) & vbCrLf & Hex(P28(2)) & vbCrLf & Hex(P28(3))
'MsgBox Hex(P28(4)) & vbCrLf & Hex(P28(5)) & vbCrLf & Hex(P28(6)) & vbCrLf & Hex(P28(7))
'MsgBox Hex(P28(8)) & vbCrLf & Hex(P28(9)) & vbCrLf & Hex(P28(10)) & vbCrLf & Hex(P28(11))
'MsgBox Hex(P28(12)) & vbCrLf & Hex(P28(13)) & vbCrLf & Hex(P28(14)) & vbCrLf & Hex(P28(15))
End Function
Function EnCode(pStr As String) As String
Dim i As Integer
pStr = Trim(pStr)
For i = 1 To Len(pStr) Step 16
EnCode = EnCode & EnCodeHandle(Mid(pStr, i, 16))
If i < Len(pStr) - 16 Then EnCode = EnCode & " "
Next i
End Function
Function DeCodeHandle(pStr As String) As String
Dim A As Long, B As Long, C As Long, D As Long, i As Integer, P5C As Byte, P64 As Byte, P6C As Byte, P18 As Long
Dim ECX As Long, EDX As Long, EAX As Long, EBX As Long
A = A Or CLng("&H" & Mid(pStr, 1, 2))
A = A Or CLng("&H" & Mid(pStr, 3, 2) & "00")
A = A Or CLng("&H" & Mid(pStr, 5, 2) & "0000")
A = A Or CLng("&H" & Mid(pStr, 7, 2) & "000000")
B = B Or CLng("&H" & Mid(pStr, 9, 2))
B = B Or CLng("&H" & Mid(pStr, 11, 2) & "00")
B = B Or CLng("&H" & Mid(pStr, 13, 2) & "0000")
B = B Or CLng("&H" & Mid(pStr, 15, 2) & "000000")
C = C Or CLng("&H" & Mid(pStr, 17, 2))
C = C Or CLng("&H" & Mid(pStr, 19, 2) & "00")
C = C Or CLng("&H" & Mid(pStr, 21, 2) & "0000")
C = C Or CLng("&H" & Mid(pStr, 23, 2) & "000000")
D = D Or CLng("&H" & Mid(pStr, 25, 2))
D = D Or CLng("&H" & Mid(pStr, 27, 2) & "00")
D = D Or CLng("&H" & Mid(pStr, 29, 2) & "0000")
D = D Or CLng("&H" & Mid(pStr, 31, 2) & "000000")
A = A Xor &HBADEC2CC
B = B Xor &H65BCED39
C = C Xor &HCCE7EA98
D = D Xor &H41F77B95
P18 = 4
'MsgBox Hex(A) & vbCrLf & Hex(B) & vbCrLf & Hex(C) & vbCrLf & Hex(D)
For i = 1 To 9
P28(0) = A And &HFF&
P28(1) = ((A And &HFF00) / &H100) And &HFF&
P28(2) = ((A And &HFF0000) / &H10000) And &HFF&
P28(3) = ((A And &HFF000000) / &H1000000) And &HFF&
P28(4) = B And &HFF&
P28(5) = ((B And &HFF00) / &H100) And &HFF&
P28(6) = ((B And &HFF0000) / &H10000) And &HFF&
P28(7) = ((B And &HFF000000) / &H1000000) And &HFF&
P28(8) = C And &HFF&
P28(9) = ((C And &HFF00) / &H100) And &HFF&
P28(10) = ((C And &HFF0000) / &H10000) And &HFF&
P28(11) = ((C And &HFF000000) / &H1000000) And &HFF&
P28(12) = D And &HFF&
P28(13) = ((D And &HFF00) / &H100) And &HFF&
P28(14) = ((D And &HFF0000) / &H10000) And &HFF&
P28(15) = ((D And &HFF000000) / &H1000000) And &HFF&
P5C = P28(&HD)
P64 = P28(&HA)
A = BASE124(P28(&H7)) Xor BASE108(P64) Xor BASEEC(P5C) Xor BASED0(P28(0)) Xor BASE198(P18)
P5C = P28(1)
P64 = P28(&HE)
P6C = P28(&HB)
B = BASE198(P18 + 1) Xor BASE124(P6C) Xor BASE108(P64) Xor BASEEC(P5C) Xor BASED0(P28(4))
P5C = P28(5)
P64 = P28(&H2)
P6C = P28(&HF)
C = BASE198(P18 + 2) Xor BASE124(P6C) Xor BASE108(P64) Xor BASEEC(P5C) Xor BASED0(P28(8))
P5C = P28(9)
P64 = P28(&H6)
P6C = P28(&H3)
D = BASE198(P18 + 3) Xor BASE124(P6C) Xor BASE108(P64) Xor BASEEC(P5C) Xor BASED0(P28(&HC))
P18 = P18 + 4
Next
'MsgBox Hex(A) & vbCrLf & Hex(B) & vbCrLf & Hex(C) & vbCrLf & Hex(D)
P28(0) = A And &HFF&
P28(1) = ((A And &HFF00) / &H100) And &HFF&
P28(2) = ((A And &HFF0000) / &H10000) And &HFF&
P28(3) = ((A And &HFF000000) / &H1000000) And &HFF&
P28(4) = B And &HFF&
P28(5) = ((B And &HFF00) / &H100) And &HFF&
P28(6) = ((B And &HFF0000) / &H10000) And &HFF&
P28(7) = ((B And &HFF000000) / &H1000000) And &HFF&
P28(8) = C And &HFF&
P28(9) = ((C And &HFF00) / &H100) And &HFF&
P28(10) = ((C And &HFF0000) / &H10000) And &HFF&
P28(11) = ((C And &HFF000000) / &H1000000) And &HFF&
P28(12) = D And &HFF&
P28(13) = ((D And &HFF00) / &H100) And &HFF&
P28(14) = ((D And &HFF0000) / &H10000) And &HFF&
P28(15) = ((D And &HFF000000) / &H1000000) And &HFF&
'MsgBox Hex(P28(0)) & vbCrLf & Hex(P28(1)) & vbCrLf & Hex(P28(2)) & vbCrLf & Hex(P28(3))
'MsgBox Hex(P28(4)) & vbCrLf & Hex(P28(5)) & vbCrLf & Hex(P28(6)) & vbCrLf & Hex(P28(7))
'MsgBox Hex(P28(8)) & vbCrLf & Hex(P28(9)) & vbCrLf & Hex(P28(10)) & vbCrLf & Hex(P28(11))
'MsgBox Hex(P28(12)) & vbCrLf & Hex(P28(13)) & vbCrLf & Hex(P28(14)) & vbCrLf & Hex(P28(15))
P5C = P28(&HD)
P64 = P28(&HA)
ECX = BASE140(P64)
EDX = BASE140(P28(0))
ECX = ECX And &HFF0000
EDX = EDX And &HFF&
ECX = ECX Xor EDX
EDX = BASE140(P28(7))
EDX = EDX And &HFF000000
ECX = ECX Xor EDX
EAX = BASE140(P5C)
EAX = EAX And &HFF00&
ECX = ECX Xor EAX
ECX = ECX Xor BASE198(P18)
A = ECX
P5C = P28(1)
P64 = P28(&HE)
P6C = P28(&HB)
EDX = BASE140(P64)
ECX = BASE140(P28(4))
EDX = EDX And &HFF0000
ECX = ECX And &HFF
EDX = EDX Xor ECX
ECX = BASE140(P6C)
ECX = ECX And &HFF000000
EDX = EDX Xor ECX
EAX = BASE140(P5C)
EAX = EAX And &HFF00&
EBX = BASE198(P18 + 1)
EDX = EDX Xor EAX
EDX = EDX Xor EBX
B = EDX
P5C = P28(5)
P64 = P28(&H2)
P6C = P28(&HF)
ECX = BASE140(P64)
EDX = BASE140(P28(&H8))
ECX = ECX And &HFF0000
EDX = EDX And &HFF&
ECX = ECX Xor EDX
EDX = BASE140(P6C)
EDX = EDX And &HFF000000
ECX = ECX Xor EDX
EAX = BASE140(P5C)
EAX = EAX And &HFF00&
EBX = BASE198(P18 + 2)
ECX = ECX Xor EAX
ECX = ECX Xor EBX
C = ECX
P5C = P28(9)
P64 = P28(&H6)
P6C = P28(&H3)
EDX = BASE140(P64)
ECX = BASE140(P28(&HC))
EDX = EDX And &HFF0000
ECX = ECX And &HFF&
EDX = EDX Xor ECX
ECX = BASE140(P6C)
ECX = ECX And &HFF000000
EDX = EDX Xor ECX
EAX = BASE140(P5C)
EAX = EAX And &HFF00&
EBX = BASE198(P18 + 3)
EDX = EDX Xor EAX
EDX = EDX Xor EBX
D = EDX
'MsgBox Hex(A) & vbCrLf & Hex(B) & vbCrLf & Hex(C) & vbCrLf & Hex(D)
P28(0) = A And &HFF&
P28(1) = ((A And &HFF00) / &H100) And &HFF&
P28(2) = ((A And &HFF0000) / &H10000) And &HFF&
P28(3) = ((A And &HFF000000) / &H1000000) And &HFF&
P28(4) = B And &HFF&
P28(5) = ((B And &HFF00) / &H100) And &HFF&
P28(6) = ((B And &HFF0000) / &H10000) And &HFF&
P28(7) = ((B And &HFF000000) / &H1000000) And &HFF&
P28(8) = C And &HFF&
P28(9) = ((C And &HFF00) / &H100) And &HFF&
P28(10) = ((C And &HFF0000) / &H10000) And &HFF&
P28(11) = ((C And &HFF000000) / &H1000000) And &HFF&
P28(12) = D And &HFF&
P28(13) = ((D And &HFF00) / &H100) And &HFF&
P28(14) = ((D And &HFF0000) / &H10000) And &HFF&
P28(15) = ((D And &HFF000000) / &H1000000) And &HFF&
'MsgBox Hex(P28(0)) & vbCrLf & Hex(P28(1)) & vbCrLf & Hex(P28(2)) & vbCrLf & Hex(P28(3))
'MsgBox Hex(P28(4)) & vbCrLf & Hex(P28(5)) & vbCrLf & Hex(P28(6)) & vbCrLf & Hex(P28(7))
'MsgBox Hex(P28(8)) & vbCrLf & Hex(P28(9)) & vbCrLf & Hex(P28(10)) & vbCrLf & Hex(P28(11))
'MsgBox Hex(P28(12)) & vbCrLf & Hex(P28(13)) & vbCrLf & Hex(P28(14)) & vbCrLf & Hex(P28(15))
pStr = StrConv(P28, vbUnicode)
'MsgBox pStr
DeCodeHandle = pStr
End Function
Function DeCode(pStr As String) As String
Dim i As Integer
pStr = Replace(pStr, " ", "")
pStr = Replace(pStr, vbCrLf, "")
For i = 1 To Len(pStr) Step 32
DeCode = DeCode & DeCodeHandle(Mid(pStr, i, 32))
If i < Len(pStr) - 32 Then DeCode = Mid(DeCode, 1, Len(DeCode) - 1)
Next i
End Function
|
|