亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmd5.bas

?? 算法解密
?? BAS
?? 第 1 頁 / 共 2 頁
字號:
Attribute VB_Name = "mMD5"

' MODULE:       CMD5
'*******************************************************************************
Option Explicit

Public Const BITS_TO_A_BYTE  As Long = 8
Public Const BYTES_TO_A_WORD As Long = 4
Public Const BITS_TO_A_WORD  As Long = BYTES_TO_A_WORD * BITS_TO_A_BYTE

Public m_lOnBits(0 To 30) As Long
Public m_l2Power(0 To 30) As Long

'*******************************************************************************
' Class_Initialize (SUB)
'
' DESCRIPTION:
' We will usually get quicker results by preparing arrays of bit patterns and
' powers of 2 ahead of time instead of calculating them every time, unless of
' course the methods are only ever getting called once per instantiation of the
' class.
'*******************************************************************************
Public Sub Initialize()
    ' Could have done this with a loop calculating each value, but simply
    ' assigning the values is quicker - BITS SET FROM RIGHT
    m_lOnBits(0) = 1            ' 00000000000000000000000000000001
    m_lOnBits(1) = 3            ' 00000000000000000000000000000011
    m_lOnBits(2) = 7            ' 00000000000000000000000000000111
    m_lOnBits(3) = 15           ' 00000000000000000000000000001111
    m_lOnBits(4) = 31           ' 00000000000000000000000000011111
    m_lOnBits(5) = 63           ' 00000000000000000000000000111111
    m_lOnBits(6) = 127          ' 00000000000000000000000001111111
    m_lOnBits(7) = 255          ' 00000000000000000000000011111111
    m_lOnBits(8) = 511          ' 00000000000000000000000111111111
    m_lOnBits(9) = 1023         ' 00000000000000000000001111111111
    m_lOnBits(10) = 2047        ' 00000000000000000000011111111111
    m_lOnBits(11) = 4095        ' 00000000000000000000111111111111
    m_lOnBits(12) = 8191        ' 00000000000000000001111111111111
    m_lOnBits(13) = 16383       ' 00000000000000000011111111111111
    m_lOnBits(14) = 32767       ' 00000000000000000111111111111111
    m_lOnBits(15) = 65535       ' 00000000000000001111111111111111
    m_lOnBits(16) = 131071      ' 00000000000000011111111111111111
    m_lOnBits(17) = 262143      ' 00000000000000111111111111111111
    m_lOnBits(18) = 524287      ' 00000000000001111111111111111111
    m_lOnBits(19) = 1048575     ' 00000000000011111111111111111111
    m_lOnBits(20) = 2097151     ' 00000000000111111111111111111111
    m_lOnBits(21) = 4194303     ' 00000000001111111111111111111111
    m_lOnBits(22) = 8388607     ' 00000000011111111111111111111111
    m_lOnBits(23) = 16777215    ' 00000000111111111111111111111111
    m_lOnBits(24) = 33554431    ' 00000001111111111111111111111111
    m_lOnBits(25) = 67108863    ' 00000011111111111111111111111111
    m_lOnBits(26) = 134217727   ' 00000111111111111111111111111111
    m_lOnBits(27) = 268435455   ' 00001111111111111111111111111111
    m_lOnBits(28) = 536870911   ' 00011111111111111111111111111111
    m_lOnBits(29) = 1073741823  ' 00111111111111111111111111111111
    m_lOnBits(30) = 2147483647  ' 01111111111111111111111111111111
    
    ' Could have done this with a loop calculating each value, but simply
    ' assigning the values is quicker - POWERS OF 2
    m_l2Power(0) = 1            ' 00000000000000000000000000000001
    m_l2Power(1) = 2            ' 00000000000000000000000000000010
    m_l2Power(2) = 4            ' 00000000000000000000000000000100
    m_l2Power(3) = 8            ' 00000000000000000000000000001000
    m_l2Power(4) = 16           ' 00000000000000000000000000010000
    m_l2Power(5) = 32           ' 00000000000000000000000000100000
    m_l2Power(6) = 64           ' 00000000000000000000000001000000
    m_l2Power(7) = 128          ' 00000000000000000000000010000000
    m_l2Power(8) = 256          ' 00000000000000000000000100000000
    m_l2Power(9) = 512          ' 00000000000000000000001000000000
    m_l2Power(10) = 1024        ' 00000000000000000000010000000000
    m_l2Power(11) = 2048        ' 00000000000000000000100000000000
    m_l2Power(12) = 4096        ' 00000000000000000001000000000000
    m_l2Power(13) = 8192        ' 00000000000000000010000000000000
    m_l2Power(14) = 16384       ' 00000000000000000100000000000000
    m_l2Power(15) = 32768       ' 00000000000000001000000000000000
    m_l2Power(16) = 65536       ' 00000000000000010000000000000000
    m_l2Power(17) = 131072      ' 00000000000000100000000000000000
    m_l2Power(18) = 262144      ' 00000000000001000000000000000000
    m_l2Power(19) = 524288      ' 00000000000010000000000000000000
    m_l2Power(20) = 1048576     ' 00000000000100000000000000000000
    m_l2Power(21) = 2097152     ' 00000000001000000000000000000000
    m_l2Power(22) = 4194304     ' 00000000010000000000000000000000
    m_l2Power(23) = 8388608     ' 00000000100000000000000000000000
    m_l2Power(24) = 16777216    ' 00000001000000000000000000000000
    m_l2Power(25) = 33554432    ' 00000010000000000000000000000000
    m_l2Power(26) = 67108864    ' 00000100000000000000000000000000
    m_l2Power(27) = 134217728   ' 00001000000000000000000000000000
    m_l2Power(28) = 268435456   ' 00010000000000000000000000000000
    m_l2Power(29) = 536870912   ' 00100000000000000000000000000000
    m_l2Power(30) = 1073741824  ' 01000000000000000000000000000000
End Sub

'*******************************************************************************
' LShift (FUNCTION)
'
' PARAMETERS:
' (In) - lValue     - Long    - The value to be shifted
' (In) - iShiftBits - Integer - The number of bits to shift the value by
'
' RETURN VALUE:
' Long - The shifted long integer
'
' DESCRIPTION:
' A left shift takes all the set binary bits and moves them left, in-filling
' with zeros in the vacated bits on the right. This function is equivalent to
' the << operator in Java and C++
'*******************************************************************************
Private Function LShift(ByVal lValue As Long, _
                        ByVal iShiftBits As Integer) As Long
    ' NOTE: If you can guarantee that the Shift parameter will be in the
    ' range 1 to 30 you can safely strip of this first nested if structure for
    ' speed.
    '
    ' A shift of zero is no shift at all.
    If iShiftBits = 0 Then
        LShift = lValue
        Exit Function
        
    ' A shift of 31 will result in the right most bit becoming the left most
    ' bit and all other bits being cleared
    ElseIf iShiftBits = 31 Then
        If lValue And 1 Then
            LShift = &H80000000
        Else
            LShift = 0
        End If
        Exit Function
        
    ' A shift of less than zero or more than 31 is undefined
    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
        Err.Raise 6
    End If
    
    ' If the left most bit that remains will end up in the negative bit
    ' position (&H80000000) we would end up with an overflow if we took the
    ' standard route. We need to strip the left most bit and add it back
    ' afterwards.
    If (lValue And m_l2Power(31 - iShiftBits)) Then
    
        ' (Value And OnBits(31 - (Shift + 1))) chops off the left most bits that
        ' we are shifting into, but also the left most bit we still want as this
        ' is going to end up in the negative bit marker position (&H80000000).
        ' After the multiplication/shift we Or the result with &H80000000 to
        ' turn the negative bit on.
        LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * _
            m_l2Power(iShiftBits)) Or &H80000000
    
    Else
    
        ' (Value And OnBits(31-Shift)) chops off the left most bits that we are
        ' shifting into so we do not get an overflow error when we do the
        ' multiplication/shift
        LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * _
            m_l2Power(iShiftBits))
        
    End If
End Function

'*******************************************************************************
' RShift (FUNCTION)
'
' PARAMETERS:
' (In) - lValue     - Long    - The value to be shifted
' (In) - iShiftBits - Integer - The number of bits to shift the value by
'
' RETURN VALUE:
' Long - The shifted long integer
'
' DESCRIPTION:
' The right shift of an unsigned long integer involves shifting all the set bits
' to the right and in-filling on the left with zeros. This function is
' equivalent to the >>> operator in Java or the >> operator in C++ when used on
' an unsigned long.
'*******************************************************************************
Private Function RShift(ByVal lValue As Long, _
                        ByVal iShiftBits As Integer) As Long
    
    ' NOTE: If you can guarantee that the Shift parameter will be in the
    ' range 1 to 30 you can safely strip of this first nested if structure for
    ' speed.
    '
    ' A shift of zero is no shift at all
    If iShiftBits = 0 Then
        RShift = lValue
        Exit Function
        
    ' A shift of 31 will clear all bits and move the left most bit to the right
    ' most bit position
    ElseIf iShiftBits = 31 Then
        If lValue And &H80000000 Then
            RShift = 1
        Else
            RShift = 0
        End If
        Exit Function
        
    ' A shift of less than zero or more than 31 is undefined
    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
        Err.Raise 6
    End If
    
    ' We do not care about the top most bit or the final bit, the top most bit
    ' will be taken into account in the next stage, the final bit (whether it
    ' is an odd number or not) is being shifted into, so we do not give a jot
    ' about it
    RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)
    
    ' If the top most bit (&H80000000) was set we need to do things differently
    ' as in a normal VB signed long integer the top most bit is used to indicate
    ' the sign of the number, when it is set it is a negative number, so just
    ' deviding by a factor of 2 as above would not work.
    ' NOTE: (lValue And  &H80000000) is equivalent to (lValue < 0), you could
    ' get a very marginal speed improvement by changing the test to (lValue < 0)
    If (lValue And &H80000000) Then
        ' We take the value computed so far, and then add the left most negative
        ' bit after it has been shifted to the right the appropriate number of
        ' places
        RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1)))
    End If
End Function

'*******************************************************************************
' RShiftSigned (FUNCTION)
'
' PARAMETERS:
' (In) - lValue     - Long    -
' (In) - iShiftBits - Integer -
'
' RETURN VALUE:
' Long -
'
' DESCRIPTION:
' The right shift of a signed long integer involves shifting all the set bits to
' the right and in-filling on the left with the sign bit (0 if positive, 1 if
' negative. This function is equivalent to the >> operator in Java or the >>
' operator in C++ when used on a signed long integer. Not used in this class,
' but included for completeness.
'*******************************************************************************
Private Function RShiftSigned(ByVal lValue As Long, _
                              ByVal iShiftBits As Integer) As Long
    
    ' NOTE: If you can guarantee that the Shift parameter will be in the
    ' range 1 to 30 you can safely strip of this first nested if structure for
    ' speed.
    '
    ' A shift of zero is no shift at all
    If iShiftBits = 0 Then
        RShiftSigned = lValue
        Exit Function
    
    ' A shift of 31 will clear all bits if the left most bit was zero, and will
    ' set all bits if the left most bit was 1 (a negative indicator)
    ElseIf iShiftBits = 31 Then
        
        ' NOTE: (lValue And  &H80000000) is equivalent to (lValue < 0), you
        ' could get a very marginal speed improvement by changing the test to
        ' (lValue < 0)
        If (lValue And &H80000000) Then
            RShiftSigned = -1
        Else
            RShiftSigned = 0
        End If
        Exit Function
    
    ' A shift of less than zero or more than 31 is undefined
    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
        Err.Raise 6
    End If
    
    ' We get the same result by dividing by the appropriate power of 2 and
    ' rounding in the negative direction
    RShiftSigned = Int(lValue / m_l2Power(iShiftBits))
End Function

'*******************************************************************************
' RotateLeft (FUNCTION)
'
' PARAMETERS:
' (In) - lValue     - Long    - Value to act on
' (In) - iShiftBits - Integer - Bits to move by
'
' RETURN VALUE:
' Long - Result
'
' DESCRIPTION:
' Rotates the bits in a long integer to the left, those bits falling off the
' left edge are put back on the right edge
'*******************************************************************************
Private Function RotateLeft(ByVal lValue As Long, _
                            ByVal iShiftBits As Integer) As Long
    RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))
End Function

'*******************************************************************************
' AddUnsigned (FUNCTION)
'
' PARAMETERS:
' (In) - lX - Long - First value
' (In) - lY - Long - Second value
'
' RETURN VALUE:
' Long - Result
'
' DESCRIPTION:
' Adds two potentially large unsigned numbers without overflowing
'*******************************************************************************
Private Function AddUnsigned(ByVal lX As Long, _
                             ByVal lY As Long) As Long
    Dim lX4     As Long
    Dim lY4     As Long
    Dim lX8     As Long
    Dim lY8     As Long
    Dim lResult As Long
 
    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 = lResult
End Function

'*******************************************************************************
' F (FUNCTION)
'
' DESCRIPTION:
' MD5's F function
'*******************************************************************************
Private Function F(ByVal x As Long, _
                   ByVal y As Long, _
                   ByVal z As Long) As Long
    F = (x And y) Or ((Not x) And z)
End Function

'*******************************************************************************
' G (FUNCTION)
'
' DESCRIPTION:
' MD5's G function
'*******************************************************************************
Private Function G(ByVal x As Long, _
                   ByVal y As Long, _
                   ByVal z As Long) As Long

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青青爽久久午夜综合久久午夜| 人人爽香蕉精品| 亚洲精品高清视频在线观看| 国产一区二区在线影院| 欧美久久久久久蜜桃| 亚洲精品伦理在线| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美人狂配大交3d怪物一区| 亚洲一区二区三区视频在线| 色香色香欲天天天影视综合网| 国产精品免费av| 国产精品自拍一区| 久久精品人人做| 高清成人在线观看| 中文字幕在线不卡视频| av在线播放成人| 中文字幕在线观看一区| 欧美综合久久久| 午夜精品久久久久久久久| 欧美一级电影网站| 国产麻豆91精品| 亚洲欧美一区二区在线观看| 不卡欧美aaaaa| 亚洲自拍都市欧美小说| 91精品国产综合久久久蜜臀粉嫩| 国产精品白丝jk白祙喷水网站 | 95精品视频在线| 日韩欧美一二三| 国产精品免费av| 日本久久一区二区三区| 天堂在线亚洲视频| 国产精品久久毛片av大全日韩| 国产精品剧情在线亚洲| 日韩小视频在线观看专区| 国产在线精品免费av| 91福利国产精品| 99国产精品久久久久久久久久| 国产麻豆成人精品| 国产另类ts人妖一区二区| 蜜桃视频第一区免费观看| 天天影视网天天综合色在线播放| 亚洲成人免费视频| 56国语精品自产拍在线观看| 成人av资源在线观看| 日本aⅴ亚洲精品中文乱码| 国产亚洲一本大道中文在线| 欧美日韩一区二区三区高清| 热久久国产精品| 国产精品盗摄一区二区三区| 精品国产露脸精彩对白| 欧美电影一区二区三区| 色综合婷婷久久| 成人免费视频网站在线观看| 国产一区二区三区香蕉| 精品一区二区在线免费观看| 日韩精品一卡二卡三卡四卡无卡| 亚洲欧洲日韩女同| 久久久久久麻豆| 精品国产电影一区二区| 91精品国产综合久久久久| 欧美猛男超大videosgay| 日本精品一区二区三区高清| av在线一区二区三区| 色哟哟一区二区在线观看| 国产精品中文有码| 久久狠狠亚洲综合| 久久精品国产亚洲高清剧情介绍| 亚洲成人精品一区二区| 午夜欧美一区二区三区在线播放| 亚洲女人****多毛耸耸8| 日韩欧美国产三级电影视频| 丰满岳乱妇一区二区三区| 国产成人自拍网| 国产高清在线观看免费不卡| 欧美最猛黑人xxxxx猛交| 亚洲综合久久av| 欧美不卡一二三| 国产米奇在线777精品观看| 欧美精选一区二区| 国产亚洲成年网址在线观看| 亚洲美女在线一区| 日韩高清在线一区| 成人自拍视频在线观看| 欧美亚州韩日在线看免费版国语版 | 亚洲综合久久久久| 午夜国产不卡在线观看视频| 精品一区二区av| 在线区一区二视频| 亚洲精品一区二区三区四区高清| 精品福利在线导航| 亚洲色图色小说| 丝瓜av网站精品一区二区| 国模套图日韩精品一区二区| 欧美在线免费观看亚洲| 欧美一卡二卡三卡四卡| 亚洲欧洲美洲综合色网| 奇米色一区二区| 欧美日韩一区二区在线观看| 国产精品乱人伦中文| 日本 国产 欧美色综合| 色婷婷激情综合| 欧美激情在线看| 日韩电影一区二区三区| 欧美性猛交xxxxxxxx| 一区二区中文视频| 国产aⅴ综合色| 欧美videofree性高清杂交| 午夜成人免费电影| 欧美乱妇20p| 天天综合日日夜夜精品| 日韩欧美激情四射| 麻豆一区二区三| 欧美大片日本大片免费观看| 麻豆精品视频在线观看免费| 丁香婷婷综合色啪| 97se亚洲国产综合自在线不卡| 91国偷自产一区二区三区观看| 国产精品久久久久久久蜜臀| 久久99在线观看| 亚洲午夜精品网| 亚洲www啪成人一区二区麻豆| 国产精品盗摄一区二区三区| 中文字幕一区在线观看视频| 欧美高清dvd| 日韩理论片在线| 99久久er热在这里只有精品15 | 久久久久久免费毛片精品| 亚洲成人777| 亚洲图片另类小说| 一本色道**综合亚洲精品蜜桃冫 | 天天色天天操综合| 91精品婷婷国产综合久久竹菊| 亚洲二区视频在线| 欧美精品一区二区三区一线天视频 | 亚洲无线码一区二区三区| 在线观看亚洲一区| 日本成人在线不卡视频| 久久婷婷久久一区二区三区| 风间由美一区二区三区在线观看| 国产精品久久久久aaaa樱花 | 欧美tk丨vk视频| 国产一区二区0| 亚洲制服丝袜一区| 久久综合99re88久久爱| 成人午夜电影小说| 亚洲精品视频在线观看免费 | 亚洲成人中文在线| 日韩免费一区二区| 色婷婷精品久久二区二区蜜臀av| 国产一区二区三区综合| 一区二区三区四区视频精品免费 | 国产精品日日摸夜夜摸av| 亚洲18色成人| 亚洲成人午夜影院| 成人av免费在线| 久久综合色综合88| 国产精品一区免费视频| 精品视频在线免费| 天天影视网天天综合色在线播放| 欧美一二三在线| 国产综合一区二区| 国产精品久久国产精麻豆99网站| aaa欧美日韩| 午夜视频一区在线观看| 欧美一区二区在线看| 激情五月婷婷综合| 中文字幕综合网| 欧美日韩免费不卡视频一区二区三区| 在线欧美小视频| 在线视频欧美区| 在线区一区二视频| 色综合激情五月| 欧美性欧美巨大黑白大战| 91在线免费播放| 欧美日韩一区二区欧美激情| 欧美日韩成人综合天天影院 | 中文字幕在线不卡视频| 国产女人18毛片水真多成人如厕| 精品一区二区影视| 国产欧美日产一区| 91在线视频播放地址| 亚洲欧美日韩在线播放| 国产欧美精品在线观看| 亚洲精品国产一区二区精华液| 成人av资源在线| 亚洲美腿欧美偷拍| 欧美巨大另类极品videosbest| 日韩激情视频网站| 欧美xxxxxxxx| 99v久久综合狠狠综合久久| 日韩毛片一二三区| 91精品国产一区二区| 狠狠色2019综合网| 亚洲麻豆国产自偷在线| 4438x成人网最大色成网站| 国产剧情一区二区| 亚洲第一福利视频在线| 26uuu亚洲| 欧美日韩在线直播| 国产福利视频一区二区三区|