ripemd160managed.cls

来自「VB 加密----------能够加密解密控件」· CLS 代码 · 共 1,361 行 · 第 1/5 页

CLS
1,361
字号
    Call fnFF(ee, aa, bb, cc, dd, mX(1), 14)
    Call fnFF(dd, ee, aa, bb, cc, mX(2), 15)
    Call fnFF(cc, dd, ee, aa, bb, mX(3), 12)
    Call fnFF(bb, cc, dd, ee, aa, mX(4), 5)
    Call fnFF(aa, bb, cc, dd, ee, mX(5), 8)
    Call fnFF(ee, aa, bb, cc, dd, mX(6), 7)
    Call fnFF(dd, ee, aa, bb, cc, mX(7), 9)
    Call fnFF(cc, dd, ee, aa, bb, mX(8), 11)
    Call fnFF(bb, cc, dd, ee, aa, mX(9), 13)
    Call fnFF(aa, bb, cc, dd, ee, mX(10), 14)
    Call fnFF(ee, aa, bb, cc, dd, mX(11), 15)
    Call fnFF(dd, ee, aa, bb, cc, mX(12), 6)
    Call fnFF(cc, dd, ee, aa, bb, mX(13), 7)
    Call fnFF(bb, cc, dd, ee, aa, mX(14), 9)
    Call fnFF(aa, bb, cc, dd, ee, mX(15), 8)

    Call fnGG(ee, aa, bb, cc, dd, mX(7), 7)
    Call fnGG(dd, ee, aa, bb, cc, mX(4), 6)
    Call fnGG(cc, dd, ee, aa, bb, mX(13), 8)
    Call fnGG(bb, cc, dd, ee, aa, mX(1), 13)
    Call fnGG(aa, bb, cc, dd, ee, mX(10), 11)
    Call fnGG(ee, aa, bb, cc, dd, mX(6), 9)
    Call fnGG(dd, ee, aa, bb, cc, mX(15), 7)
    Call fnGG(cc, dd, ee, aa, bb, mX(3), 15)
    Call fnGG(bb, cc, dd, ee, aa, mX(12), 7)
    Call fnGG(aa, bb, cc, dd, ee, mX(0), 12)
    Call fnGG(ee, aa, bb, cc, dd, mX(9), 15)
    Call fnGG(dd, ee, aa, bb, cc, mX(5), 9)
    Call fnGG(cc, dd, ee, aa, bb, mX(2), 11)
    Call fnGG(bb, cc, dd, ee, aa, mX(14), 7)
    Call fnGG(aa, bb, cc, dd, ee, mX(11), 13)
    Call fnGG(ee, aa, bb, cc, dd, mX(8), 12)

    Call fnHH(dd, ee, aa, bb, cc, mX(3), 11)
    Call fnHH(cc, dd, ee, aa, bb, mX(10), 13)
    Call fnHH(bb, cc, dd, ee, aa, mX(14), 6)
    Call fnHH(aa, bb, cc, dd, ee, mX(4), 7)
    Call fnHH(ee, aa, bb, cc, dd, mX(9), 14)
    Call fnHH(dd, ee, aa, bb, cc, mX(15), 9)
    Call fnHH(cc, dd, ee, aa, bb, mX(8), 13)
    Call fnHH(bb, cc, dd, ee, aa, mX(1), 15)
    Call fnHH(aa, bb, cc, dd, ee, mX(2), 14)
    Call fnHH(ee, aa, bb, cc, dd, mX(7), 8)
    Call fnHH(dd, ee, aa, bb, cc, mX(0), 13)
    Call fnHH(cc, dd, ee, aa, bb, mX(6), 6)
    Call fnHH(bb, cc, dd, ee, aa, mX(13), 5)
    Call fnHH(aa, bb, cc, dd, ee, mX(11), 12)
    Call fnHH(ee, aa, bb, cc, dd, mX(5), 7)
    Call fnHH(dd, ee, aa, bb, cc, mX(12), 5)
    
    Call fnII(cc, dd, ee, aa, bb, mX(1), 11)
    Call fnII(bb, cc, dd, ee, aa, mX(9), 12)
    Call fnII(aa, bb, cc, dd, ee, mX(11), 14)
    Call fnII(ee, aa, bb, cc, dd, mX(10), 15)
    Call fnII(dd, ee, aa, bb, cc, mX(0), 14)
    Call fnII(cc, dd, ee, aa, bb, mX(8), 15)
    Call fnII(bb, cc, dd, ee, aa, mX(12), 9)
    Call fnII(aa, bb, cc, dd, ee, mX(4), 8)
    Call fnII(ee, aa, bb, cc, dd, mX(13), 9)
    Call fnII(dd, ee, aa, bb, cc, mX(3), 14)
    Call fnII(cc, dd, ee, aa, bb, mX(7), 5)
    Call fnII(bb, cc, dd, ee, aa, mX(15), 6)
    Call fnII(aa, bb, cc, dd, ee, mX(14), 8)
    Call fnII(ee, aa, bb, cc, dd, mX(5), 6)
    Call fnII(dd, ee, aa, bb, cc, mX(6), 5)
    Call fnII(cc, dd, ee, aa, bb, mX(2), 12)

    Call fnJJ(bb, cc, dd, ee, aa, mX(4), 9)
    Call fnJJ(aa, bb, cc, dd, ee, mX(0), 15)
    Call fnJJ(ee, aa, bb, cc, dd, mX(5), 5)
    Call fnJJ(dd, ee, aa, bb, cc, mX(9), 11)
    Call fnJJ(cc, dd, ee, aa, bb, mX(7), 6)
    Call fnJJ(bb, cc, dd, ee, aa, mX(12), 8)
    Call fnJJ(aa, bb, cc, dd, ee, mX(2), 13)
    Call fnJJ(ee, aa, bb, cc, dd, mX(10), 12)
    Call fnJJ(dd, ee, aa, bb, cc, mX(14), 5)
    Call fnJJ(cc, dd, ee, aa, bb, mX(1), 12)
    Call fnJJ(bb, cc, dd, ee, aa, mX(3), 13)
    Call fnJJ(aa, bb, cc, dd, ee, mX(8), 14)
    Call fnJJ(ee, aa, bb, cc, dd, mX(11), 11)
    Call fnJJ(dd, ee, aa, bb, cc, mX(6), 8)
    Call fnJJ(cc, dd, ee, aa, bb, mX(15), 5)
    Call fnJJ(bb, cc, dd, ee, aa, mX(13), 6)

    Call fnJJJ(aaa, bbb, ccc, ddd, eee, mX(5), 8)
    Call fnJJJ(eee, aaa, bbb, ccc, ddd, mX(14), 9)
    Call fnJJJ(ddd, eee, aaa, bbb, ccc, mX(7), 9)
    Call fnJJJ(ccc, ddd, eee, aaa, bbb, mX(0), 11)
    Call fnJJJ(bbb, ccc, ddd, eee, aaa, mX(9), 13)
    Call fnJJJ(aaa, bbb, ccc, ddd, eee, mX(2), 15)
    Call fnJJJ(eee, aaa, bbb, ccc, ddd, mX(11), 15)
    Call fnJJJ(ddd, eee, aaa, bbb, ccc, mX(4), 5)
    Call fnJJJ(ccc, ddd, eee, aaa, bbb, mX(13), 7)
    Call fnJJJ(bbb, ccc, ddd, eee, aaa, mX(6), 7)
    Call fnJJJ(aaa, bbb, ccc, ddd, eee, mX(15), 8)
    Call fnJJJ(eee, aaa, bbb, ccc, ddd, mX(8), 11)
    Call fnJJJ(ddd, eee, aaa, bbb, ccc, mX(1), 14)
    Call fnJJJ(ccc, ddd, eee, aaa, bbb, mX(10), 14)
    Call fnJJJ(bbb, ccc, ddd, eee, aaa, mX(3), 12)
    Call fnJJJ(aaa, bbb, ccc, ddd, eee, mX(12), 6)

    Call fnIII(eee, aaa, bbb, ccc, ddd, mX(6), 9)
    Call fnIII(ddd, eee, aaa, bbb, ccc, mX(11), 13)
    Call fnIII(ccc, ddd, eee, aaa, bbb, mX(3), 15)
    Call fnIII(bbb, ccc, ddd, eee, aaa, mX(7), 7)
    Call fnIII(aaa, bbb, ccc, ddd, eee, mX(0), 12)
    Call fnIII(eee, aaa, bbb, ccc, ddd, mX(13), 8)
    Call fnIII(ddd, eee, aaa, bbb, ccc, mX(5), 9)
    Call fnIII(ccc, ddd, eee, aaa, bbb, mX(10), 11)
    Call fnIII(bbb, ccc, ddd, eee, aaa, mX(14), 7)
    Call fnIII(aaa, bbb, ccc, ddd, eee, mX(15), 7)
    Call fnIII(eee, aaa, bbb, ccc, ddd, mX(8), 12)
    Call fnIII(ddd, eee, aaa, bbb, ccc, mX(12), 7)
    Call fnIII(ccc, ddd, eee, aaa, bbb, mX(4), 6)
    Call fnIII(bbb, ccc, ddd, eee, aaa, mX(9), 15)
    Call fnIII(aaa, bbb, ccc, ddd, eee, mX(1), 13)
    Call fnIII(eee, aaa, bbb, ccc, ddd, mX(2), 11)

    Call fnHHH(ddd, eee, aaa, bbb, ccc, mX(15), 9)
    Call fnHHH(ccc, ddd, eee, aaa, bbb, mX(5), 7)
    Call fnHHH(bbb, ccc, ddd, eee, aaa, mX(1), 15)
    Call fnHHH(aaa, bbb, ccc, ddd, eee, mX(3), 11)
    Call fnHHH(eee, aaa, bbb, ccc, ddd, mX(7), 8)
    Call fnHHH(ddd, eee, aaa, bbb, ccc, mX(14), 6)
    Call fnHHH(ccc, ddd, eee, aaa, bbb, mX(6), 6)
    Call fnHHH(bbb, ccc, ddd, eee, aaa, mX(9), 14)
    Call fnHHH(aaa, bbb, ccc, ddd, eee, mX(11), 12)
    Call fnHHH(eee, aaa, bbb, ccc, ddd, mX(8), 13)
    Call fnHHH(ddd, eee, aaa, bbb, ccc, mX(12), 5)
    Call fnHHH(ccc, ddd, eee, aaa, bbb, mX(2), 14)
    Call fnHHH(bbb, ccc, ddd, eee, aaa, mX(10), 13)
    Call fnHHH(aaa, bbb, ccc, ddd, eee, mX(0), 13)
    Call fnHHH(eee, aaa, bbb, ccc, ddd, mX(4), 7)
    Call fnHHH(ddd, eee, aaa, bbb, ccc, mX(13), 5)

    Call fnGGG(ccc, ddd, eee, aaa, bbb, mX(8), 15)
    Call fnGGG(bbb, ccc, ddd, eee, aaa, mX(6), 5)
    Call fnGGG(aaa, bbb, ccc, ddd, eee, mX(4), 8)
    Call fnGGG(eee, aaa, bbb, ccc, ddd, mX(1), 11)
    Call fnGGG(ddd, eee, aaa, bbb, ccc, mX(3), 14)
    Call fnGGG(ccc, ddd, eee, aaa, bbb, mX(11), 14)
    Call fnGGG(bbb, ccc, ddd, eee, aaa, mX(15), 6)
    Call fnGGG(aaa, bbb, ccc, ddd, eee, mX(0), 14)
    Call fnGGG(eee, aaa, bbb, ccc, ddd, mX(5), 6)
    Call fnGGG(ddd, eee, aaa, bbb, ccc, mX(12), 9)
    Call fnGGG(ccc, ddd, eee, aaa, bbb, mX(2), 12)
    Call fnGGG(bbb, ccc, ddd, eee, aaa, mX(13), 9)
    Call fnGGG(aaa, bbb, ccc, ddd, eee, mX(9), 12)
    Call fnGGG(eee, aaa, bbb, ccc, ddd, mX(7), 5)
    Call fnGGG(ddd, eee, aaa, bbb, ccc, mX(10), 15)
    Call fnGGG(ccc, ddd, eee, aaa, bbb, mX(14), 8)

    Call fnFFF(bbb, ccc, ddd, eee, aaa, mX(12), 8)
    Call fnFFF(aaa, bbb, ccc, ddd, eee, mX(15), 5)
    Call fnFFF(eee, aaa, bbb, ccc, ddd, mX(10), 12)
    Call fnFFF(ddd, eee, aaa, bbb, ccc, mX(4), 9)
    Call fnFFF(ccc, ddd, eee, aaa, bbb, mX(1), 12)
    Call fnFFF(bbb, ccc, ddd, eee, aaa, mX(5), 5)
    Call fnFFF(aaa, bbb, ccc, ddd, eee, mX(8), 14)
    Call fnFFF(eee, aaa, bbb, ccc, ddd, mX(7), 6)
    Call fnFFF(ddd, eee, aaa, bbb, ccc, mX(6), 8)
    Call fnFFF(ccc, ddd, eee, aaa, bbb, mX(2), 13)
    Call fnFFF(bbb, ccc, ddd, eee, aaa, mX(13), 6)
    Call fnFFF(aaa, bbb, ccc, ddd, eee, mX(14), 5)
    Call fnFFF(eee, aaa, bbb, ccc, ddd, mX(0), 15)
    Call fnFFF(ddd, eee, aaa, bbb, ccc, mX(3), 13)
    Call fnFFF(ccc, ddd, eee, aaa, bbb, mX(9), 11)
    Call fnFFF(bbb, ccc, ddd, eee, aaa, mX(11), 11)

    ddd = Helper.UAdd(Helper.UAdd(ddd, cc), mState(1))
    mState(1) = Helper.UAdd(Helper.UAdd(mState(2), dd), eee)
    mState(2) = Helper.UAdd(Helper.UAdd(mState(3), ee), aaa)
    mState(3) = Helper.UAdd(Helper.UAdd(mState(4), aa), bbb)
    mState(4) = Helper.UAdd(Helper.UAdd(mState(0), bb), ccc)
    mState(0) = ddd
End Sub

''
' Runs when compiled. Must disable Integer overflow checks.
'
Private Sub TransformNative(ByRef Bytes() As Byte, ByVal Index As Long)
    Call CopyMemory(mX(0), Bytes(Index), 64)
    
    Dim aa As Long
    Dim bb As Long
    Dim dd As Long
    Dim cc As Long
    Dim ee As Long
    Dim aaa As Long
    Dim bbb As Long
    Dim ccc As Long
    Dim ddd As Long
    Dim eee As Long
    
    aa = mState(0)
    bb = mState(1)
    cc = mState(2)
    dd = mState(3)
    ee = mState(4)
    aaa = aa
    bbb = bb
    ccc = cc
    ddd = dd
    eee = ee
    
    'Call fnFF(aa, bb, cc, dd, ee, mX(0), 11)
    aa = aa + (bb Xor cc Xor dd) + mX(0)
    aa = ((aa * &H800&) Or (((aa And &HFFE00000) \ &H200000) And &H7FF&)) + ee
    cc = (cc * &H400&) Or (((cc And &HFFC00000) \ &H400000) And &H3FF&)
    
    'Call fnFF(ee, aa, bb, cc, dd, mX(1), 14)
    ee = ee + (aa Xor bb Xor cc) + mX(1)
    ee = ((ee * &H4000&) Or (((ee And &HFFFC0000) \ &H40000) And &H3FFF&)) + dd
    bb = (bb * &H400&) Or (((bb And &HFFC00000) \ &H400000) And &H3FF&)
    
    'Call fnFF(dd, ee, aa, bb, cc, mX(2), 15)
    dd = dd + (ee Xor aa Xor bb) + mX(2)
    dd = ((dd * &H8000&) Or (((dd And &HFFFE0000) \ &H20000) And &H7FFF&)) + cc
    aa = ((aa * &H400&) Or (((aa And &HFFC00000) \ &H400000) And &H3FF&))
    
    'Call fnFF(cc, dd, ee, aa, bb, mX(3), 12)
    cc = cc + (dd Xor ee Xor aa) + mX(3)
    cc = ((cc * &H1000&) Or (((cc And &HFFF00000) \ &H100000) And &HFFF&)) + bb
    ee = ((ee * &H400&) Or (((ee And &HFFC00000) \ &H400000) And &H3FF&))
        
    'Call fnFF(bb, cc, dd, ee, aa, mX(4), 5)
    bb = bb + (cc Xor dd Xor ee) + mX(4)
    bb = ((bb * &H20&) Or (((bb And &HF8000000) \ &H8000000) And &H1F&)) + aa
    dd = ((dd * &H400&) Or (((dd And &HFFC00000) \ &H400000) And &H3FF&))
    
    'Call fnFF(aa, bb, cc, dd, ee, mX(5), 8)
    aa = aa + (bb Xor cc Xor dd) + mX(5)
    aa = ((aa * &H100&) Or (((aa And &HFF000000) \ &H1000000) And &HFF&)) + ee
    cc = (cc * &H400&) Or (((cc And &HFFC00000) \ &H400000) And &H3FF&)
    
    'Call fnFF(ee, aa, bb, cc, dd, mX(6), 7)
    ee = ee + (aa Xor bb Xor cc) + mX(6)
    ee = ((ee * &H80&) Or (((ee And &HFE000000) \ &H2000000) And &H7F&)) + dd
    bb = (bb * &H400&) Or (((bb And &HFFC00000) \ &H400000) And &H3FF&)
        
    'Call fnFF(dd, ee, aa, bb, cc, mX(7), 9)
    dd = dd + (ee Xor aa Xor bb) + mX(7)
    dd = ((dd * &H200&) Or (((dd And &HFF800000) \ &H800000) And &H1FF&)) + cc
    aa = ((aa * &H400&) Or (((aa And &HFFC00000) \ &H400000) And &H3FF&))
    
    'Call fnFF(cc, dd, ee, aa, bb, mX(8), 11)
    cc = cc + (dd Xor ee Xor aa) + mX(8)
    cc = ((cc * &H800&) Or (((cc And &HFFE00000) \ &H200000) And &H7FF&)) + bb
    ee = ((ee * &H400&) Or (((ee And &HFFC00000) \ &H400000) And &H3FF&))

    'Call fnFF(bb, cc, dd, ee, aa, mX(9), 13)
    bb = bb + (cc Xor dd Xor ee) + mX(9)
    bb = ((bb * &H2000&) Or (((bb And &HFFF80000) \ &H80000) And &H1FFF&)) + aa
    dd = ((dd * &H400&) Or (((dd And &HFFC00000) \ &H400000) And &H3FF&))
    
    'Call fnFF(aa, bb, cc, dd, ee, mX(10), 14)
    aa = aa + (bb Xor cc Xor dd) + mX(10)
    aa = ((aa * &H4000&) Or (((aa And &HFFFC0000) \ &H40000) And &H3FFF&)) + ee
    cc = (cc * &H400&) Or (((cc And &HFFC00000) \ &H400000) And &H3FF&)
    
    'Call fnFF(ee, aa, bb, cc, dd, mX(11), 15)
    ee = ee + (aa Xor bb Xor cc) + mX(11)
    ee = ((ee * &H8000&) Or (((ee And &HFFFE0000) \ &H20000) And &H7FFF&)) + dd
    bb = (bb * &H400&) Or (((bb And &HFFC00000) \ &H400000) And &H3FF&)
    
    'Call fnFF(dd, ee, aa, bb, cc, mX(12), 6)
    dd = dd + (ee Xor aa Xor bb) + mX(12)
    dd = ((dd * &H40&) Or (((dd And &HFC000000) \ &H4000000) And &H3F&)) + cc
    aa = ((aa * &H400&) Or (((aa And &HFFC00000) \ &H400000) And &H3FF&))
    
    'Call fnFF(cc, dd, ee, aa, bb, mX(13), 7)
    cc = cc + (dd Xor ee Xor aa) + mX(13)
    cc = ((cc * &H80&) Or (((cc And &HFE000000) \ &H2000000) And &H7F&)) + bb

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?