开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1966|回复: 8
收起左侧

[易语言] 帮我把这段VB代码转成易语言的

[复制链接]
结帖率:79% (11/14)
发表于 2018-4-16 14:14:10 | 显示全部楼层 |阅读模式   湖北省武汉市
300精币
代码传附件吧,主要是一个加密和解密的函数
VB代码.txt (14.15 KB, 下载次数: 3)

点评

300÷45=6.666666666666667   四川省遂宁市  发表于 2018-4-16 14:27

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:79% (11/14)
 楼主| 发表于 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
回复

使用道具 举报

结帖率:79% (11/14)
发表于 2018-4-16 14:16:05 | 显示全部楼层   北京市北京市
估计 你300 交易币 能找到人就不错了
回复

使用道具 举报

结帖率:79% (11/14)
 楼主| 发表于 2018-4-16 14:16:43 | 显示全部楼层   湖北省武汉市
唯你入我心 发表于 2018-4-16 14:16
估计 你300 交易币 能找到人就不错了

我觉得这并不难
回复

使用道具 举报

结帖率:79% (11/14)
发表于 2018-4-16 14:24:13 | 显示全部楼层   北京市北京市

呵呵哒 祝你好运
回复

使用道具 举报

结帖率:98% (65/66)
发表于 2018-4-16 14:25:15 | 显示全部楼层   四川省遂宁市
我也觉得不难
回复

使用道具 举报

结帖率:77% (20/26)
发表于 2018-4-16 16:02:25 | 显示全部楼层   广东省广州市
首先你要知道300精币=nil
回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 24 天

发表于 2018-4-19 11:37:53 | 显示全部楼层   浙江省杭州市
别搞笑,代码这么多就算了,还不完整:BASE17C() ,BASE98() ...... 这些函数都没有。你要让别人帮你猜到死嘛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表