泰国按摩群

小姐楼凤大全

发布日期:2025-12-17 14:22    点击次数:165

内容摘要小姐楼凤大全

MD5加密解密|齐备代码

1、在责任簿“主步伐MD5”里,用户窗体Usf_Login里,这仅为演示之用,无本体性的内容:

Private Sub CmdLogin_Click()    Call BackTo    Unload MeEnd Sub

2、在责任簿“主步伐MD5”里,用户窗体Usf_Reg里,用户注册窗口:

Dim clsGT As New GetInfoDim currStatus As IntegerPrivate Sub CmdCancel_Click()    ThisWorkbook.Close savechanges:=TrueEnd SubPrivate Sub CmdCopy_Click()    If CopyTextToClipboard(currMachineCode) Then        MsgBox "注册码已顺利复制到剪贴板。"    Else        MsgBox "注册码复制失败。"    End IfEnd SubPrivate Sub CmdRegister_Click()    If Me.TxbRegisterCode = "" Then        MsgBox "请输入正确的注册码!"        Exit Sub    Else        If RegisterCodeShouldBe = Me.TxbRegisterCode Then            MsgBox "注册顺利!"            Sheets("Settings").Range(clsGT.ValRngAddress("RegisterCode")).Value = Me.TxbRegisterCode            currStatus = 1            Usf_Login.Show            Unload Me        Else                        MsgBox "注册码不正确!"            Exit Sub                    End If            End IfEnd SubPrivate Sub CmdTrial_Click()    If timeLeft > 0 Then        Sheets("Settings").Range(clsGT.ValRngAddress("TimesLeft")).Value = timeLeft - 1        ThisWorkbook.Save        currStatus = 1        Usf_Login.Show        Unload Me    Else        MsgBox "试用次数已用完,请注册!"        Exit Sub    End IfEnd SubPrivate Sub UserForm_Initialize()    Me.LbMachineCode.Caption = currMachineCode    Me.CmdTrial.Caption = "试用(" & timeLeft & ")"    '里面使用版荫藏付款码    If clsGT.GetCurrInfo("InternalVersion") = "yes" Then        Me.Height = Me.CmdCancel.Top + Me.CmdCancel.Height + 30    End IfEnd SubPrivate Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)    If currStatus <> 1 Then        ThisWorkbook.Close savechanges:=True    End IfEnd Sub
3、在责任簿“主步伐MD5”里,模块myModule_Reg,复制到剪切板、自动启动等历程:
Public currMachineCode As StringPublic RegisterCodeShouldBe As StringPublic timeLeft As Integer#If VBA7 Then    Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hWnd As LongPtr) As LongPtr    Declare PtrSafe Function CloseClipboard Lib "user32" () As LongPtr    Declare PtrSafe Function EmptyClipboard Lib "user32" () As LongPtr    Declare PtrSafe Function SetClipboardData Lib "user32" (ByVal wFormat As LongPtr, ByVal hMem As LongPtr) As LongPtr    Declare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal wFlags As LongPtr, ByVal dwBytes As LongPtr) As LongPtr    Declare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr    Declare PtrSafe Function GlobalUnlock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr    Declare PtrSafe Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, ByVal lpString2 As Any) As LongPtr#Else    Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long    Declare Function CloseClipboard Lib "user32" () As Long    Declare Function EmptyClipboard Lib "user32" () As Long    Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long    Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long    Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long    Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long    Declare Function lstrcpy Lib "kernel32" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long#End IfConst GMEM_MOVEABLE = &H2Const CF_TEXT = 1Function CopyTextToClipboard(textToCopy As String) As Boolean    Dim hMem As LongPtr, lpMem As LongPtr        ' 掀开剪贴板    If OpenClipboard(0&) = 0 Then        CopyTextToClipboard = False        Exit Function    End If        ' 清空剪贴板内容    EmptyClipboard        ' 分派全局内存并锁定    hMem = GlobalAlloc(GMEM_MOVEABLE, Len(textToCopy) + 1)    lpMem = GlobalLock(hMem)        ' 将文本复制到全局内存    lstrcpy ByVal lpMem, ByVal textToCopy        ' 将全局内存的内容建造到剪贴板    SetClipboardData CF_TEXT, hMem        ' 解锁和关闭剪贴板    GlobalUnlock hMem    CloseClipboard        CopyTextToClipboard = TrueEnd FunctionPrivate Sub auto_open()    Dim clsGT As New GetInfo    Dim clsMD5 As New MD5    Dim currRegisterCode As String    Dim Confusion1 As String, Confusion2 As String    Dim appName As String    Dim confusionText As String    Dim confusionCode As String    Dim finalCode As String    Confusion1 = "qWerTyuIop"    appName = clsGT.GetCurrInfo("AppName")    currRegisterCode = clsGT.GetCurrInfo("RegisterCode")    timeLeft = clsGT.GetCurrInfo("TimesLeft")    Confusion2 = appName    confusionText = Confusion1 & Confusion2    confusionCode = clsMD5.MD5(confusionText)    currMachineCode = clsMD5.MD5(clsMD5.GetSerialNumber)    finalCode = currMachineCode & confusionCode    RegisterCodeShouldBe = clsMD5.MD5(finalCode)    If RegisterCodeShouldBe = currRegisterCode Then        Usf_Login.Show    Else        Usf_Reg.Show    End IfEnd SubSub BackTo()    '已整剪发表    Dim Sht As Worksheet    On Error Resume Next    Sheets("Main").Activate    Dim curSht As String    ActiveSheet.Visible = xlSheetVisible    curSht = ActiveSheet.Name    For Each Sht In Excel.ThisWorkbook.Worksheets        '批量荫藏        If Sht.Name <> curSht Then            Sht.Visible = xlSheetVeryHidden        End If    NextEnd Sub

4、在责任簿“主步伐MD5”里,类模块GetInfo,一些函数,在蓝本的利用中,有许多的,跟注册无关,泰国按摩群齐删除了:

Function GetCurrInfo(iField As String)    GetCurrInfo = Application.WorksheetFunction.VLookup(iField, Sheets("settings").Range("B:C"), 2, 0)End FunctionSub ShowAll()    Dim Sht As Worksheet        For Each Sht In ThisWorkbook.Worksheets        If Sht.Visible <> xlSheetVisible Then            Sht.Visible = xlSheetVisible        End If    NextEnd SubFunction ValRngAddress(iField As String)        '把柄Settings表中的神态称号,查询值位置    Dim iRow As Integer, iCol As Integer    iRow = Sheets("Settings").UsedRange.Rows.Count    For Each rng In Sheets("Settings").Range("B2:B" & iRow)        If rng.Value = iField Then            ValRngAddress = rng.Offset(0, 1).Address            Exit For        End If    NextEnd Function

5、在责任簿“主步伐MD5”里,类模块MD5,把MD5函数放到类模块,在责任表中就不会涌现,也弗成使用:

Private Const BITS_TO_A_BYTE = 8Private Const BYTES_TO_A_WORD = 4Private Const BITS_TO_A_WORD = 32Private m_lOnBits(30)Private m_l2Power(30)Sub SetUpArrays()    m_lOnBits(0) = CLng(1)    m_lOnBits(1) = CLng(3)    m_lOnBits(2) = CLng(7)    m_lOnBits(3) = CLng(15)    m_lOnBits(4) = CLng(31)    m_lOnBits(5) = CLng(63)    m_lOnBits(6) = CLng(127)    m_lOnBits(7) = CLng(255)    m_lOnBits(8) = CLng(511)    m_lOnBits(9) = CLng(1023)    m_lOnBits(10) = CLng(2047)    m_lOnBits(11) = CLng(4095)    m_lOnBits(12) = CLng(8191)    m_lOnBits(13) = CLng(16383)    m_lOnBits(14) = CLng(32767)    m_lOnBits(15) = CLng(65535)    m_lOnBits(16) = CLng(131071)    m_lOnBits(17) = CLng(262143)    m_lOnBits(18) = CLng(524287)    m_lOnBits(19) = CLng(1048575)    m_lOnBits(20) = CLng(2097151)    m_lOnBits(21) = CLng(4194303)    m_lOnBits(22) = CLng(8388607)    m_lOnBits(23) = CLng(16777215)    m_lOnBits(24) = CLng(33554431)    m_lOnBits(25) = CLng(67108863)    m_lOnBits(26) = CLng(134217727)    m_lOnBits(27) = CLng(268435455)    m_lOnBits(28) = CLng(536870911)    m_lOnBits(29) = CLng(1073741823)    m_lOnBits(30) = CLng(2147483647)        m_l2Power(0) = CLng(1)    m_l2Power(1) = CLng(2)    m_l2Power(2) = CLng(4)    m_l2Power(3) = CLng(8)    m_l2Power(4) = CLng(16)    m_l2Power(5) = CLng(32)    m_l2Power(6) = CLng(64)    m_l2Power(7) = CLng(128)    m_l2Power(8) = CLng(256)    m_l2Power(9) = CLng(512)    m_l2Power(10) = CLng(1024)    m_l2Power(11) = CLng(2048)    m_l2Power(12) = CLng(4096)    m_l2Power(13) = CLng(8192)    m_l2Power(14) = CLng(16384)    m_l2Power(15) = CLng(32768)    m_l2Power(16) = CLng(65536)    m_l2Power(17) = CLng(131072)    m_l2Power(18) = CLng(262144)    m_l2Power(19) = CLng(524288)    m_l2Power(20) = CLng(1048576)    m_l2Power(21) = CLng(2097152)    m_l2Power(22) = CLng(4194304)    m_l2Power(23) = CLng(8388608)    m_l2Power(24) = CLng(16777216)    m_l2Power(25) = CLng(33554432)    m_l2Power(26) = CLng(67108864)    m_l2Power(27) = CLng(134217728)    m_l2Power(28) = CLng(268435456)    m_l2Power(29) = CLng(536870912)    m_l2Power(30) = CLng(1073741824)End SubPrivate Function LShift(lValue, iShiftBits)    If iShiftBits = 0 Then        LShift = lValue        Exit Function    ElseIf iShiftBits = 31 Then        If lValue And 1 Then            LShift = &H80000000        Else            LShift = 0        End If        Exit Function    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then        Err.Raise 6    End If        If (lValue And m_l2Power(31 - iShiftBits)) Then        LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000    Else        LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))    End IfEnd FunctionPrivate Function RShift(lValue, iShiftBits)    If iShiftBits = 0 Then        RShift = lValue        Exit Function    ElseIf iShiftBits = 31 Then        If lValue And &H80000000 Then            RShift = 1        Else            RShift = 0        End If        Exit Function    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then        Err.Raise 6    End If        RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)        If (lValue And &H80000000) Then        RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1)))    End IfEnd FunctionPrivate Function RotateLeft(lValue, iShiftBits)    RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))End FunctionPrivate Function AddUnsigned(lX, lY)    Dim lX4    Dim lY4    Dim lX8    Dim lY8    Dim lResult        lX8 = lX And &H80000000    lY8 = lY And &H80000000    lX4 = lX And &H40000000    lY4 = lY And &H40000000        lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)        If lX4 And lY4 Then        lResult = lResult Xor &H80000000 Xor lX8 Xor lY8    ElseIf lX4 Or lY4 Then        If lResult And &H40000000 Then            lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8        Else            lResult = lResult Xor &H40000000 Xor lX8 Xor lY8        End If    Else        lResult = lResult Xor lX8 Xor lY8    End If        AddUnsigned = lResultEnd FunctionPrivate Function F(X, Y, z)    F = (X And Y) Or ((Not X) And z)End FunctionPrivate Function G(X, Y, z)    G = (X And z) Or (Y And (Not z))End FunctionPrivate Function H(X, Y, z)    H = (X Xor Y Xor z)End FunctionPrivate Function I(X, Y, z)    I = (Y Xor (X Or (Not z)))End FunctionPrivate Sub FF(a, b, c, d, X, s, ac)    a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), X), ac))    a = RotateLeft(a, s)    a = AddUnsigned(a, b)End SubPrivate Sub GG(a, b, c, d, X, s, ac)    a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), X), ac))    a = RotateLeft(a, s)    a = AddUnsigned(a, b)End SubPrivate Sub HH(a, b, c, d, X, s, ac)    a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), X), ac))    a = RotateLeft(a, s)    a = AddUnsigned(a, b)End SubPrivate Sub II(a, b, c, d, X, s, ac)    a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), X), ac))    a = RotateLeft(a, s)    a = AddUnsigned(a, b)End SubPrivate Function ConvertToWordArray(sMessage)    Dim lMessageLength    Dim lNumberOfWords    Dim lWordArray()    Dim lBytePosition    Dim lByteCount    Dim lWordCount        Const MODULUS_BITS = 512    Const CONGRUENT_BITS = 448        lMessageLength = Len(sMessage)        lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ BITS_TO_A_WORD)    ReDim lWordArray(lNumberOfWords - 1)        lBytePosition = 0    lByteCount = 0    Do Until lByteCount >= lMessageLength        lWordCount = lByteCount \ BYTES_TO_A_WORD        lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE        lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)        lByteCount = lByteCount + 1    Loop        lWordCount = lByteCount \ BYTES_TO_A_WORD    lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE        lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)        lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)    lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)        ConvertToWordArray = lWordArrayEnd FunctionPrivate Function WordToHex(lValue)    Dim lByte    Dim lCount        For lCount = 0 To 3        lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)        WordToHex = WordToHex & Right("0" & Hex(lByte), 2)    NextEnd FunctionFunction MD5(sMessage)       Call SetUpArrays        Dim X    Dim k    Dim AA    Dim BB    Dim CC    Dim DD    Dim a    Dim b    Dim c    Dim d        Const S11 = 7    Const S12 = 12    Const S13 = 17    Const S14 = 22    Const S21 = 5    Const S22 = 9    Const S23 = 14    Const S24 = 20    Const S31 = 4    Const S32 = 11    Const S33 = 16    Const S34 = 23    Const S41 = 6    Const S42 = 10    Const S43 = 15    Const S44 = 21        X = ConvertToWordArray(sMessage)        a = &H67452301    b = &HEFCDAB89    c = &H98BADCFE    d = &H10325476        For k = 0 To UBound(X) Step 16        AA = a        BB = b        CC = c        DD = d                FF a, b, c, d, X(k + 0), S11, &HD76AA478        FF d, a, b, c, X(k + 1), S12, &HE8C7B756        FF c, d, a, b, X(k + 2), S13, &H242070DB        FF b, c, d, a, X(k + 3), S14, &HC1BDCEEE        FF a, b, c, d, X(k + 4), S11, &HF57C0FAF        FF d, a, b, c, X(k + 5), S12, &H4787C62A        FF c, d, a, b, X(k + 6), S13, &HA8304613        FF b, c, d, a, X(k + 7), S14, &HFD469501        FF a, b, c, d, X(k + 8), S11, &H698098D8        FF d, a, b, c, X(k + 9), S12, &H8B44F7AF        FF c, d, a, b, X(k + 10), S13, &HFFFF5BB1        FF b, c, d, a, X(k + 11), S14, &H895CD7BE        FF a, b, c, d, X(k + 12), S11, &H6B901122        FF d, a, b, c, X(k + 13), S12, &HFD987193        FF c, d, a, b, X(k + 14), S13, &HA679438E        FF b, c, d, a, X(k + 15), S14, &H49B40821                GG a, b, c, d, X(k + 1), S21, &HF61E2562        GG d, a, b, c, X(k + 6), S22, &HC040B340        GG c, d, a, b, X(k + 11), S23, &H265E5A51        GG b, c, d, a, X(k + 0), S24, &HE9B6C7AA        GG a, b, c, d, X(k + 5), S21, &HD62F105D        GG d, a, b, c, X(k + 10), S22, &H2441453        GG c, d, a, b, X(k + 15), S23, &HD8A1E681        GG b, c, d, a, X(k + 4), S24, &HE7D3FBC8        GG a, b, c, d, X(k + 9), S21, &H21E1CDE6        GG d, a, b, c, X(k + 14), S22, &HC33707D6        GG c, d, a, b, X(k + 3), S23, &HF4D50D87        GG b, c, d, a, X(k + 8), S24, &H455A14ED        GG a, b, c, d, X(k + 13), S21, &HA9E3E905        GG d, a, b, c, X(k + 2), S22, &HFCEFA3F8        GG c, d, a, b, X(k + 7), S23, &H676F02D9        GG b, c, d, a, X(k + 12), S24, &H8D2A4C8A                HH a, b, c, d, X(k + 5), S31, &HFFFA3942        HH d, a, b, c, X(k + 8), S32, &H8771F681        HH c, d, a, b, X(k + 11), S33, &H6D9D6122        HH b, c, d, a, X(k + 14), S34, &HFDE5380C        HH a, b, c, d, X(k + 1), S31, &HA4BEEA44        HH d, a, b, c, X(k + 4), S32, &H4BDECFA9        HH c, d, a, b, X(k + 7), S33, &HF6BB4B60        HH b, c, d, a, X(k + 10), S34, &HBEBFBC70        HH a, b, c, d, X(k + 13), S31, &H289B7EC6        HH d, a, b, c, X(k + 0), S32, &HEAA127FA        HH c, d, a, b, X(k + 3), S33, &HD4EF3085        HH b, c, d, a, X(k + 6), S34, &H4881D05        HH a, b, c, d, X(k + 9), S31, &HD9D4D039        HH d, a, b, c, X(k + 12), S32, &HE6DB99E5        HH c, d, a, b, X(k + 15), S33, &H1FA27CF8        HH b, c, d, a, X(k + 2), S34, &HC4AC5665                II a, b, c, d, X(k + 0), S41, &HF4292244        II d, a, b, c, X(k + 7), S42, &H432AFF97        II c, d, a, b, X(k + 14), S43, &HAB9423A7        II b, c, d, a, X(k + 5), S44, &HFC93A039        II a, b, c, d, X(k + 12), S41, &H655B59C3        II d, a, b, c, X(k + 3), S42, &H8F0CCC92        II c, d, a, b, X(k + 10), S43, &HFFEFF47D        II b, c, d, a, X(k + 1), S44, &H85845DD1        II a, b, c, d, X(k + 8), S41, &H6FA87E4F        II d, a, b, c, X(k + 15), S42, &HFE2CE6E0        II c, d, a, b, X(k + 6), S43, &HA3014314        II b, c, d, a, X(k + 13), S44, &H4E0811A1        II a, b, c, d, X(k + 4), S41, &HF7537E82        II d, a, b, c, X(k + 11), S42, &HBD3AF235        II c, d, a, b, X(k + 2), S43, &H2AD7D2BB        II b, c, d, a, X(k + 9), S44, &HEB86D391                a = AddUnsigned(a, AA)        b = AddUnsigned(b, BB)        c = AddUnsigned(c, CC)        d = AddUnsigned(d, DD)    Next        MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))End FunctionFunction GetSerialNumber() As String    Dim wmi As Object    Dim query As String    Dim results As Object    Dim item As Object    Set wmi = GetObject("winmgmts:\\.\root\cimv2")    query = "SELECT SerialNumber FROM Win32_BaseBoard"    Set results = wmi.ExecQuery(query)    For Each item In results        GetSerialNumber = item.serialNumber        Exit Function    Next    GetSerialNumber = "qWerTyuIop"End Function

6、在责任簿“打算注册码”里,责任表Sheet1,号令按钮点击事件,调用打算注册码历程:

Private Sub CmdGetRegisterCode_Click()    Call GetRegisterCodeEnd Sub

7、在责任簿“打算注册码”里小姐楼凤大全,模块module_md5,打算注册码:

Private Const BITS_TO_A_BYTE = 8Private Const BYTES_TO_A_WORD = 4Private Const BITS_TO_A_WORD = 32Private m_lOnBits(30)Private m_l2Power(30)Sub SetUpArrays()    m_lOnBits(0) = CLng(1)    m_lOnBits(1) = CLng(3)    m_lOnBits(2) = CLng(7)    m_lOnBits(3) = CLng(15)    m_lOnBits(4) = CLng(31)    m_lOnBits(5) = CLng(63)    m_lOnBits(6) = CLng(127)    m_lOnBits(7) = CLng(255)    m_lOnBits(8) = CLng(511)    m_lOnBits(9) = CLng(1023)    m_lOnBits(10) = CLng(2047)    m_lOnBits(11) = CLng(4095)    m_lOnBits(12) = CLng(8191)    m_lOnBits(13) = CLng(16383)    m_lOnBits(14) = CLng(32767)    m_lOnBits(15) = CLng(65535)    m_lOnBits(16) = CLng(131071)    m_lOnBits(17) = CLng(262143)    m_lOnBits(18) = CLng(524287)    m_lOnBits(19) = CLng(1048575)    m_lOnBits(20) = CLng(2097151)    m_lOnBits(21) = CLng(4194303)    m_lOnBits(22) = CLng(8388607)    m_lOnBits(23) = CLng(16777215)    m_lOnBits(24) = CLng(33554431)    m_lOnBits(25) = CLng(67108863)    m_lOnBits(26) = CLng(134217727)    m_lOnBits(27) = CLng(268435455)    m_lOnBits(28) = CLng(536870911)    m_lOnBits(29) = CLng(1073741823)    m_lOnBits(30) = CLng(2147483647)        m_l2Power(0) = CLng(1)    m_l2Power(1) = CLng(2)    m_l2Power(2) = CLng(4)    m_l2Power(3) = CLng(8)    m_l2Power(4) = CLng(16)    m_l2Power(5) = CLng(32)    m_l2Power(6) = CLng(64)    m_l2Power(7) = CLng(128)    m_l2Power(8) = CLng(256)    m_l2Power(9) = CLng(512)    m_l2Power(10) = CLng(1024)    m_l2Power(11) = CLng(2048)    m_l2Power(12) = CLng(4096)    m_l2Power(13) = CLng(8192)    m_l2Power(14) = CLng(16384)    m_l2Power(15) = CLng(32768)    m_l2Power(16) = CLng(65536)    m_l2Power(17) = CLng(131072)    m_l2Power(18) = CLng(262144)    m_l2Power(19) = CLng(524288)    m_l2Power(20) = CLng(1048576)    m_l2Power(21) = CLng(2097152)    m_l2Power(22) = CLng(4194304)    m_l2Power(23) = CLng(8388608)    m_l2Power(24) = CLng(16777216)    m_l2Power(25) = CLng(33554432)    m_l2Power(26) = CLng(67108864)    m_l2Power(27) = CLng(134217728)    m_l2Power(28) = CLng(268435456)    m_l2Power(29) = CLng(536870912)    m_l2Power(30) = CLng(1073741824)End SubPrivate Function LShift(lValue, iShiftBits)    If iShiftBits = 0 Then        LShift = lValue        Exit Function    ElseIf iShiftBits = 31 Then        If lValue And 1 Then            LShift = &H80000000        Else            LShift = 0        End If        Exit Function    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then        Err.Raise 6    End If        If (lValue And m_l2Power(31 - iShiftBits)) Then        LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000    Else        LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))    End IfEnd FunctionPrivate Function RShift(lValue, iShiftBits)    If iShiftBits = 0 Then        RShift = lValue        Exit Function    ElseIf iShiftBits = 31 Then        If lValue And &H80000000 Then            RShift = 1        Else            RShift = 0        End If        Exit Function    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then        Err.Raise 6    End If        RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)        If (lValue And &H80000000) Then        RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1)))    End IfEnd FunctionPrivate Function RotateLeft(lValue, iShiftBits)    RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))End FunctionPrivate Function AddUnsigned(lX, lY)    Dim lX4    Dim lY4    Dim lX8    Dim lY8    Dim lResult        lX8 = lX And &H80000000    lY8 = lY And &H80000000    lX4 = lX And &H40000000    lY4 = lY And &H40000000        lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)        If lX4 And lY4 Then        lResult = lResult Xor &H80000000 Xor lX8 Xor lY8    ElseIf lX4 Or lY4 Then        If lResult And &H40000000 Then            lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8        Else            lResult = lResult Xor &H40000000 Xor lX8 Xor lY8        End If    Else        lResult = lResult Xor lX8 Xor lY8    End If        AddUnsigned = lResultEnd FunctionPrivate Function F(x, y, z)    F = (x And y) Or ((Not x) And z)End FunctionPrivate Function G(x, y, z)    G = (x And z) Or (y And (Not z))End FunctionPrivate Function H(x, y, z)    H = (x Xor y Xor z)End FunctionPrivate Function i(x, y, z)    i = (y Xor (x Or (Not z)))End FunctionPrivate Sub FF(a, b, c, d, x, s, ac)    a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac))    a = RotateLeft(a, s)    a = AddUnsigned(a, b)End SubPrivate Sub GG(a, b, c, d, x, s, ac)    a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac))    a = RotateLeft(a, s)    a = AddUnsigned(a, b)End SubPrivate Sub HH(a, b, c, d, x, s, ac)    a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac))    a = RotateLeft(a, s)    a = AddUnsigned(a, b)End SubPrivate Sub II(a, b, c, d, x, s, ac)    a = AddUnsigned(a, AddUnsigned(AddUnsigned(i(b, c, d), x), ac))    a = RotateLeft(a, s)    a = AddUnsigned(a, b)End SubPrivate Function ConvertToWordArray(sMessage)    Dim lMessageLength    Dim lNumberOfWords    Dim lWordArray()    Dim lBytePosition    Dim lByteCount    Dim lWordCount        Const MODULUS_BITS = 512    Const CONGRUENT_BITS = 448        lMessageLength = Len(sMessage)        lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ BITS_TO_A_WORD)    ReDim lWordArray(lNumberOfWords - 1)        lBytePosition = 0    lByteCount = 0    Do Until lByteCount >= lMessageLength        lWordCount = lByteCount \ BYTES_TO_A_WORD        lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE        lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)        lByteCount = lByteCount + 1    Loop        lWordCount = lByteCount \ BYTES_TO_A_WORD    lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE        lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)        lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)    lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)        ConvertToWordArray = lWordArrayEnd FunctionPrivate Function WordToHex(lValue)    Dim lByte    Dim lCount        For lCount = 0 To 3        lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)        WordToHex = WordToHex & Right("0" & Hex(lByte), 2)    NextEnd FunctionPublic Function MD5(sMessage)        module_md5.SetUpArrays        Dim x    Dim k    Dim AA    Dim BB    Dim CC    Dim DD    Dim a    Dim b    Dim c    Dim d        Const S11 = 7    Const S12 = 12    Const S13 = 17    Const S14 = 22    Const S21 = 5    Const S22 = 9    Const S23 = 14    Const S24 = 20    Const S31 = 4    Const S32 = 11    Const S33 = 16    Const S34 = 23    Const S41 = 6    Const S42 = 10    Const S43 = 15    Const S44 = 21        x = ConvertToWordArray(sMessage)        a = &H67452301    b = &HEFCDAB89    c = &H98BADCFE    d = &H10325476        For k = 0 To UBound(x) Step 16        AA = a        BB = b        CC = c        DD = d                FF a, b, c, d, x(k + 0), S11, &HD76AA478        FF d, a, b, c, x(k + 1), S12, &HE8C7B756        FF c, d, a, b, x(k + 2), S13, &H242070DB        FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE        FF a, b, c, d, x(k + 4), S11, &HF57C0FAF        FF d, a, b, c, x(k + 5), S12, &H4787C62A        FF c, d, a, b, x(k + 6), S13, &HA8304613        FF b, c, d, a, x(k + 7), S14, &HFD469501        FF a, b, c, d, x(k + 8), S11, &H698098D8        FF d, a, b, c, x(k + 9), S12, &H8B44F7AF        FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1        FF b, c, d, a, x(k + 11), S14, &H895CD7BE        FF a, b, c, d, x(k + 12), S11, &H6B901122        FF d, a, b, c, x(k + 13), S12, &HFD987193        FF c, d, a, b, x(k + 14), S13, &HA679438E        FF b, c, d, a, x(k + 15), S14, &H49B40821                GG a, b, c, d, x(k + 1), S21, &HF61E2562        GG d, a, b, c, x(k + 6), S22, &HC040B340        GG c, d, a, b, x(k + 11), S23, &H265E5A51        GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA        GG a, b, c, d, x(k + 5), S21, &HD62F105D        GG d, a, b, c, x(k + 10), S22, &H2441453        GG c, d, a, b, x(k + 15), S23, &HD8A1E681        GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8        GG a, b, c, d, x(k + 9), S21, &H21E1CDE6        GG d, a, b, c, x(k + 14), S22, &HC33707D6        GG c, d, a, b, x(k + 3), S23, &HF4D50D87        GG b, c, d, a, x(k + 8), S24, &H455A14ED        GG a, b, c, d, x(k + 13), S21, &HA9E3E905        GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8        GG c, d, a, b, x(k + 7), S23, &H676F02D9        GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A                HH a, b, c, d, x(k + 5), S31, &HFFFA3942        HH d, a, b, c, x(k + 8), S32, &H8771F681        HH c, d, a, b, x(k + 11), S33, &H6D9D6122        HH b, c, d, a, x(k + 14), S34, &HFDE5380C        HH a, b, c, d, x(k + 1), S31, &HA4BEEA44        HH d, a, b, c, x(k + 4), S32, &H4BDECFA9        HH c, d, a, b, x(k + 7), S33, &HF6BB4B60        HH b, c, d, a, x(k + 10), S34, &HBEBFBC70        HH a, b, c, d, x(k + 13), S31, &H289B7EC6        HH d, a, b, c, x(k + 0), S32, &HEAA127FA        HH c, d, a, b, x(k + 3), S33, &HD4EF3085        HH b, c, d, a, x(k + 6), S34, &H4881D05        HH a, b, c, d, x(k + 9), S31, &HD9D4D039        HH d, a, b, c, x(k + 12), S32, &HE6DB99E5        HH c, d, a, b, x(k + 15), S33, &H1FA27CF8        HH b, c, d, a, x(k + 2), S34, &HC4AC5665                II a, b, c, d, x(k + 0), S41, &HF4292244        II d, a, b, c, x(k + 7), S42, &H432AFF97        II c, d, a, b, x(k + 14), S43, &HAB9423A7        II b, c, d, a, x(k + 5), S44, &HFC93A039        II a, b, c, d, x(k + 12), S41, &H655B59C3        II d, a, b, c, x(k + 3), S42, &H8F0CCC92        II c, d, a, b, x(k + 10), S43, &HFFEFF47D        II b, c, d, a, x(k + 1), S44, &H85845DD1        II a, b, c, d, x(k + 8), S41, &H6FA87E4F        II d, a, b, c, x(k + 15), S42, &HFE2CE6E0        II c, d, a, b, x(k + 6), S43, &HA3014314        II b, c, d, a, x(k + 13), S44, &H4E0811A1        II a, b, c, d, x(k + 4), S41, &HF7537E82        II d, a, b, c, x(k + 11), S42, &HBD3AF235        II c, d, a, b, x(k + 2), S43, &H2AD7D2BB        II b, c, d, a, x(k + 9), S44, &HEB86D391                a = AddUnsigned(a, AA)        b = AddUnsigned(b, BB)        c = AddUnsigned(c, CC)        d = AddUnsigned(d, DD)    Next        MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))End FunctionSub GetRegisterCode()    Dim MachineCode As String    Dim finalCode As String    Dim ConfusionText As String    Dim ConfusionCode As String    Dim RegisterCode As String    Dim ws As Worksheet, i As Integer    Dim lastRow As Integer    Set ws = ThisWorkbook.Sheets("Sheet1")    lastRow = ws.UsedRange.Rows.Count    For i = 2 To lastRow        If Cells(i, 5) <> "" And Cells(i, 7) = "" Then            ConfusionText = Cells(i, 3).Value            ConfusionCode = MD5(ConfusionText)            Cells(i, 4) = ConfusionCode            MachineCode = Cells(i, 5)            finalCode = MachineCode & ConfusionCode            Cells(i, 6) = finalCode            RegisterCode = MD5(finalCode)            Cells(i, 7) = RegisterCode        End If    NextEnd Sub
~~~~~~End~~~~~~ 本站仅提供存储奇迹,所有内容均由用户发布,如发现存害或侵权内容,请点击举报。




Powered by 泰国按摩群 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2025