⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rijndaelmanagedtransform.cls

📁 这是一个在vb下实现的各种加密程序,可以实现一般的文本加密和文件加密,但是很多算法都是已经被人破解过的.
💻 CLS
📖 第 1 页 / 共 3 页
字号:
            .T3 = mT0(.s(12)) Xor mT1(.s(17)) Xor mT2(.s(22)) Xor mT3(.s(3)) Xor mExpKey(j + 3)
            .T4 = mT0(.s(16)) Xor mT1(.s(21)) Xor mT2(.s(2)) Xor mT3(.s(7)) Xor mExpKey(j + 4)
            .T5 = mT0(.s(20)) Xor mT1(.s(1)) Xor mT2(.s(6)) Xor mT3(.s(11)) Xor mExpKey(j + 5)
            j = j + 6

            Call CopyMemory(ByVal mSPtr, ByVal mTmpPtr, 24)
        Next i

        MemLong(bPtr) = (mT4(.s(0)) And &HFF&) Xor (mT4(.s(5)) And &HFF00&) Xor (mT4(.s(10)) And &HFF0000) Xor (mT4(.s(15)) And &HFF000000) Xor mExpKey(j)
        MemLong(bPtr + 4) = (mT4(.s(4)) And &HFF&) Xor (mT4(.s(9)) And &HFF00&) Xor (mT4(.s(14)) And &HFF0000) Xor (mT4(.s(19)) And &HFF000000) Xor mExpKey(j + 1)
        MemLong(bPtr + 8) = (mT4(.s(8)) And &HFF&) Xor (mT4(.s(13)) And &HFF00&) Xor (mT4(.s(18)) And &HFF0000) Xor (mT4(.s(23)) And &HFF000000) Xor mExpKey(j + 2)
        MemLong(bPtr + 12) = (mT4(.s(12)) And &HFF&) Xor (mT4(.s(17)) And &HFF00&) Xor (mT4(.s(22)) And &HFF0000) Xor (mT4(.s(3)) And &HFF000000) Xor mExpKey(j + 3)
        MemLong(bPtr + 16) = (mT4(.s(16)) And &HFF&) Xor (mT4(.s(21)) And &HFF00&) Xor (mT4(.s(2)) And &HFF0000) Xor (mT4(.s(7)) And &HFF000000) Xor mExpKey(j + 4)
        MemLong(bPtr + 20) = (mT4(.s(20)) And &HFF&) Xor (mT4(.s(1)) And &HFF00&) Xor (mT4(.s(6)) And &HFF0000) Xor (mT4(.s(11)) And &HFF000000) Xor mExpKey(j + 5)
    End With
End Sub

Private Sub Encrypt256(ByRef Bytes() As Byte, ByVal Index As Long)
    Dim bPtr As Long
    bPtr = VarPtr(Bytes(Index))
    
    MemLong(mSPtr) = MemLong(bPtr) Xor mExpKey(0)
    MemLong(mSPtr + 4) = MemLong(bPtr + 4) Xor mExpKey(1)
    MemLong(mSPtr + 8) = MemLong(bPtr + 8) Xor mExpKey(2)
    MemLong(mSPtr + 12) = MemLong(bPtr + 12) Xor mExpKey(3)
    MemLong(mSPtr + 16) = MemLong(bPtr + 16) Xor mExpKey(4)
    MemLong(mSPtr + 20) = MemLong(bPtr + 20) Xor mExpKey(5)
    MemLong(mSPtr + 24) = MemLong(bPtr + 24) Xor mExpKey(6)
    MemLong(mSPtr + 28) = MemLong(bPtr + 28) Xor mExpKey(7)
    
    With mTmp
        Dim j As Long
        j = 8
        
        Dim i As Long
        For i = 1 To mNr - 1
            .T0 = mT0(.s(0)) Xor mT1(.s(5)) Xor mT2(.s(14)) Xor mT3(.s(19)) Xor mExpKey(j)
            .T1 = mT0(.s(4)) Xor mT1(.s(9)) Xor mT2(.s(18)) Xor mT3(.s(23)) Xor mExpKey(j + 1)
            .T2 = mT0(.s(8)) Xor mT1(.s(13)) Xor mT2(.s(22)) Xor mT3(.s(27)) Xor mExpKey(j + 2)
            .T3 = mT0(.s(12)) Xor mT1(.s(17)) Xor mT2(.s(26)) Xor mT3(.s(31)) Xor mExpKey(j + 3)
            .T4 = mT0(.s(16)) Xor mT1(.s(21)) Xor mT2(.s(30)) Xor mT3(.s(3)) Xor mExpKey(j + 4)
            .T5 = mT0(.s(20)) Xor mT1(.s(25)) Xor mT2(.s(2)) Xor mT3(.s(7)) Xor mExpKey(j + 5)
            .T6 = mT0(.s(24)) Xor mT1(.s(29)) Xor mT2(.s(6)) Xor mT3(.s(11)) Xor mExpKey(j + 6)
            .T7 = mT0(.s(28)) Xor mT1(.s(1)) Xor mT2(.s(10)) Xor mT3(.s(15)) Xor mExpKey(j + 7)
            
            j = j + 8
            
            Call CopyMemory(ByVal mSPtr, ByVal mTmpPtr, 32)
        Next i
    
        MemLong(bPtr) = (mT4(.s(0)) And &HFF&) Xor (mT4(.s(5)) And &HFF00&) Xor (mT4(.s(14)) And &HFF0000) Xor (mT4(.s(19)) And &HFF000000) Xor mExpKey(j)
        MemLong(bPtr + 4) = (mT4(.s(4)) And &HFF&) Xor (mT4(.s(9)) And &HFF00&) Xor (mT4(.s(18)) And &HFF0000) Xor (mT4(.s(23)) And &HFF000000) Xor mExpKey(j + 1)
        MemLong(bPtr + 8) = (mT4(.s(8)) And &HFF&) Xor (mT4(.s(13)) And &HFF00&) Xor (mT4(.s(22)) And &HFF0000) Xor (mT4(.s(27)) And &HFF000000) Xor mExpKey(j + 2)
        MemLong(bPtr + 12) = (mT4(.s(12)) And &HFF&) Xor (mT4(.s(17)) And &HFF00&) Xor (mT4(.s(26)) And &HFF0000) Xor (mT4(.s(31)) And &HFF000000) Xor mExpKey(j + 3)
        MemLong(bPtr + 16) = (mT4(.s(16)) And &HFF&) Xor (mT4(.s(21)) And &HFF00&) Xor (mT4(.s(30)) And &HFF0000) Xor (mT4(.s(3)) And &HFF000000) Xor mExpKey(j + 4)
        MemLong(bPtr + 20) = (mT4(.s(20)) And &HFF&) Xor (mT4(.s(25)) And &HFF00&) Xor (mT4(.s(2)) And &HFF0000) Xor (mT4(.s(7)) And &HFF000000) Xor mExpKey(j + 5)
        MemLong(bPtr + 24) = (mT4(.s(24)) And &HFF&) Xor (mT4(.s(29)) And &HFF00&) Xor (mT4(.s(6)) And &HFF0000) Xor (mT4(.s(11)) And &HFF000000) Xor mExpKey(j + 6)
        MemLong(bPtr + 28) = (mT4(.s(28)) And &HFF&) Xor (mT4(.s(1)) And &HFF00&) Xor (mT4(.s(10)) And &HFF0000) Xor (mT4(.s(15)) And &HFF000000) Xor mExpKey(j + 7)
    End With
End Sub

Private Sub Decrypt128(ByRef Bytes() As Byte, ByVal Index As Long)
    Dim bPtr As Long
    bPtr = VarPtr(Bytes(Index))
    
    MemLong(mSPtr) = MemLong(bPtr) Xor mExpKey(0)
    MemLong(mSPtr + 4) = MemLong(bPtr + 4) Xor mExpKey(1)
    MemLong(mSPtr + 8) = MemLong(bPtr + 8) Xor mExpKey(2)
    MemLong(mSPtr + 12) = MemLong(bPtr + 12) Xor mExpKey(3)

    With mTmp
        Dim j As Long
        j = 4
        
        Dim i As Long
        For i = 1 To mNr - 1
            .T0 = mT0(.s(0)) Xor mT1(.s(13)) Xor mT2(.s(10)) Xor mT3(.s(7)) Xor mExpKey(j)
            .T1 = mT0(.s(4)) Xor mT1(.s(1)) Xor mT2(.s(14)) Xor mT3(.s(11)) Xor mExpKey(j + 1)
            .T2 = mT0(.s(8)) Xor mT1(.s(5)) Xor mT2(.s(2)) Xor mT3(.s(15)) Xor mExpKey(j + 2)
            .T3 = mT0(.s(12)) Xor mT1(.s(9)) Xor mT2(.s(6)) Xor mT3(.s(3)) Xor mExpKey(j + 3)
            j = j + 4

            Call CopyMemory(ByVal mSPtr, ByVal mTmpPtr, 16)
        Next i

        MemLong(bPtr) = (mT4(.s(0)) And &HFF&) Xor (mT4(.s(13)) And &HFF00&) Xor (mT4(.s(10)) And &HFF0000) Xor (mT4(.s(7)) And &HFF000000) Xor mExpKey(j)
        MemLong(bPtr + 4) = (mT4(.s(4)) And &HFF&) Xor (mT4(.s(1)) And &HFF00&) Xor (mT4(.s(14)) And &HFF0000) Xor (mT4(.s(11)) And &HFF000000) Xor mExpKey(j + 1)
        MemLong(bPtr + 8) = (mT4(.s(8)) And &HFF&) Xor (mT4(.s(5)) And &HFF00&) Xor (mT4(.s(2)) And &HFF0000) Xor (mT4(.s(15)) And &HFF000000) Xor mExpKey(j + 2)
        MemLong(bPtr + 12) = (mT4(.s(12)) And &HFF&) Xor (mT4(.s(9)) And &HFF00&) Xor (mT4(.s(6)) And &HFF0000) Xor (mT4(.s(3)) And &HFF000000) Xor mExpKey(j + 3)
    End With
End Sub

Private Sub Decrypt192(ByRef Bytes() As Byte, ByVal Index As Long)
    Dim bPtr As Long
    bPtr = VarPtr(Bytes(Index))
    
    MemLong(mSPtr) = MemLong(bPtr) Xor mExpKey(0)
    MemLong(mSPtr + 4) = MemLong(bPtr + 4) Xor mExpKey(1)
    MemLong(mSPtr + 8) = MemLong(bPtr + 8) Xor mExpKey(2)
    MemLong(mSPtr + 12) = MemLong(bPtr + 12) Xor mExpKey(3)
    MemLong(mSPtr + 16) = MemLong(bPtr + 16) Xor mExpKey(4)
    MemLong(mSPtr + 20) = MemLong(bPtr + 20) Xor mExpKey(5)

    With mTmp
        Dim j As Long
        j = 6
        
        Dim i As Long
        For i = 1 To mNr - 1
            .T0 = mT0(.s(0)) Xor mT1(.s(21)) Xor mT2(.s(18)) Xor mT3(.s(15)) Xor mExpKey(j)
            .T1 = mT0(.s(4)) Xor mT1(.s(1)) Xor mT2(.s(22)) Xor mT3(.s(19)) Xor mExpKey(j + 1)
            .T2 = mT0(.s(8)) Xor mT1(.s(5)) Xor mT2(.s(2)) Xor mT3(.s(23)) Xor mExpKey(j + 2)
            .T3 = mT0(.s(12)) Xor mT1(.s(9)) Xor mT2(.s(6)) Xor mT3(.s(3)) Xor mExpKey(j + 3)
            .T4 = mT0(.s(16)) Xor mT1(.s(13)) Xor mT2(.s(10)) Xor mT3(.s(7)) Xor mExpKey(j + 4)
            .T5 = mT0(.s(20)) Xor mT1(.s(17)) Xor mT2(.s(14)) Xor mT3(.s(11)) Xor mExpKey(j + 5)
            j = j + 6

            Call CopyMemory(ByVal mSPtr, ByVal mTmpPtr, 24)
        Next i

        MemLong(bPtr) = (mT4(.s(0)) And &HFF&) Xor (mT4(.s(21)) And &HFF00&) Xor (mT4(.s(18)) And &HFF0000) Xor (mT4(.s(15)) And &HFF000000) Xor mExpKey(j)
        MemLong(bPtr + 4) = (mT4(.s(4)) And &HFF&) Xor (mT4(.s(1)) And &HFF00&) Xor (mT4(.s(22)) And &HFF0000) Xor (mT4(.s(19)) And &HFF000000) Xor mExpKey(j + 1)
        MemLong(bPtr + 8) = (mT4(.s(8)) And &HFF&) Xor (mT4(.s(5)) And &HFF00&) Xor (mT4(.s(2)) And &HFF0000) Xor (mT4(.s(23)) And &HFF000000) Xor mExpKey(j + 2)
        MemLong(bPtr + 12) = (mT4(.s(12)) And &HFF&) Xor (mT4(.s(9)) And &HFF00&) Xor (mT4(.s(6)) And &HFF0000) Xor (mT4(.s(3)) And &HFF000000) Xor mExpKey(j + 3)
        MemLong(bPtr + 16) = (mT4(.s(16)) And &HFF&) Xor (mT4(.s(13)) And &HFF00&) Xor (mT4(.s(10)) And &HFF0000) Xor (mT4(.s(7)) And &HFF000000) Xor mExpKey(j + 4)
        MemLong(bPtr + 20) = (mT4(.s(20)) And &HFF&) Xor (mT4(.s(17)) And &HFF00&) Xor (mT4(.s(14)) And &HFF0000) Xor (mT4(.s(11)) And &HFF000000) Xor mExpKey(j + 5)
    End With
End Sub

Private Sub Decrypt256(ByRef Bytes() As Byte, ByVal Index As Long)
    Dim bPtr As Long
    bPtr = VarPtr(Bytes(Index))
    
    MemLong(mSPtr) = MemLong(bPtr) Xor mExpKey(0)
    MemLong(mSPtr + 4) = MemLong(bPtr + 4) Xor mExpKey(1)
    MemLong(mSPtr + 8) = MemLong(bPtr + 8) Xor mExpKey(2)
    MemLong(mSPtr + 12) = MemLong(bPtr + 12) Xor mExpKey(3)
    MemLong(mSPtr + 16) = MemLong(bPtr + 16) Xor mExpKey(4)
    MemLong(mSPtr + 20) = MemLong(bPtr + 20) Xor mExpKey(5)
    MemLong(mSPtr + 24) = MemLong(bPtr + 24) Xor mExpKey(6)
    MemLong(mSPtr + 28) = MemLong(bPtr + 28) Xor mExpKey(7)
    
    With mTmp
        Dim j As Long
        j = 8
        
        Dim i As Long
        For i = 1 To mNr - 1
            .T0 = mT0(.s(0)) Xor mT1(.s(29)) Xor mT2(.s(22)) Xor mT3(.s(19)) Xor mExpKey(j)
            .T1 = mT0(.s(4)) Xor mT1(.s(1)) Xor mT2(.s(26)) Xor mT3(.s(23)) Xor mExpKey(j + 1)
            .T2 = mT0(.s(8)) Xor mT1(.s(5)) Xor mT2(.s(30)) Xor mT3(.s(27)) Xor mExpKey(j + 2)
            .T3 = mT0(.s(12)) Xor mT1(.s(9)) Xor mT2(.s(2)) Xor mT3(.s(31)) Xor mExpKey(j + 3)
            .T4 = mT0(.s(16)) Xor mT1(.s(13)) Xor mT2(.s(6)) Xor mT3(.s(3)) Xor mExpKey(j + 4)
            .T5 = mT0(.s(20)) Xor mT1(.s(17)) Xor mT2(.s(10)) Xor mT3(.s(7)) Xor mExpKey(j + 5)
            .T6 = mT0(.s(24)) Xor mT1(.s(21)) Xor mT2(.s(14)) Xor mT3(.s(11)) Xor mExpKey(j + 6)
            .T7 = mT0(.s(28)) Xor mT1(.s(25)) Xor mT2(.s(18)) Xor mT3(.s(15)) Xor mExpKey(j + 7)
            j = j + 8
            
            Call CopyMemory(ByVal mSPtr, ByVal mTmpPtr, 32)
        Next i
    
        MemLong(bPtr) = (mT4(.s(0)) And &HFF&) Xor (mT4(.s(29)) And &HFF00&) Xor (mT4(.s(22)) And &HFF0000) Xor (mT4(.s(19)) And &HFF000000) Xor mExpKey(j)
        MemLong(bPtr + 4) = (mT4(.s(4)) And &HFF&) Xor (mT4(.s(1)) And &HFF00&) Xor (mT4(.s(26)) And &HFF0000) Xor (mT4(.s(23)) And &HFF000000) Xor mExpKey(j + 1)
        MemLong(bPtr + 8) = (mT4(.s(8)) And &HFF&) Xor (mT4(.s(5)) And &HFF00&) Xor (mT4(.s(30)) And &HFF0000) Xor (mT4(.s(27)) And &HFF000000) Xor mExpKey(j + 2)
        MemLong(bPtr + 12) = (mT4(.s(12)) And &HFF&) Xor (mT4(.s(9)) And &HFF00&) Xor (mT4(.s(2)) And &HFF0000) Xor (mT4(.s(31)) And &HFF000000) Xor mExpKey(j + 3)
        MemLong(bPtr + 16) = (mT4(.s(16)) And &HFF&) Xor (mT4(.s(13)) And &HFF00&) Xor (mT4(.s(6)) And &HFF0000) Xor (mT4(.s(3)) And &HFF000000) Xor mExpKey(j + 4)
        MemLong(bPtr + 20) = (mT4(.s(20)) And &HFF&) Xor (mT4(.s(17)) And &HFF00&) Xor (mT4(.s(10)) And &HFF0000) Xor (mT4(.s(7)) And &HFF000000) Xor mExpKey(j + 5)
        MemLong(bPtr + 24) = (mT4(.s(24)) And &HFF&) Xor (mT4(.s(21)) And &HFF00&) Xor (mT4(.s(14)) And &HFF0000) Xor (mT4(.s(11)) And &HFF000000) Xor mExpKey(j + 6)
        MemLong(bPtr + 28) = (mT4(.s(28)) And &HFF&) Xor (mT4(.s(25)) And &HFF00&) Xor (mT4(.s(18)) And &HFF0000) Xor (mT4(.s(15)) And &HFF000000) Xor mExpKey(j + 7)
    End With
End Sub

''
' Creates the expanded key used for encrypting data. If the CipherMode is CFB,
' then the expanded key is used for decryption as well.
'
Private Sub CreateExpandedKey(ByRef RgbKey() As Byte)
    ReDim mExpKey(0 To (mNb * (mNr + 1)) - 1)
    
    Call CopyMemory(mExpKey(0), RgbKey(0), cArray.GetLength(RgbKey))
    
    Dim W As Long
    Dim i As Long
    
    For i = mNk To UBound(mExpKey)
        W = mExpKey(i - 1)
        If (i Mod mNk) = 0 Then
            W = SubWord(RRotate(W, 8))
            W = W Xor mRCon(i \ mNk - 1)
        ElseIf (mNk > 6) And ((i Mod mNk) = 4) Then
            W = SubWord(W)
        End If
        mExpKey(i) = mExpKey(i - mNk) Xor W
    Next i
    
    If (Not mIsEncrypting) And (mMode <> CipherMode.CFB) Then
        mExpKey = CreateDecryptionKey(mExpKey)
    End If
End Sub

Private Sub CalculateNumberOfRounds()
    If (mNk = 8) Or (mNb = 8) Then
        mNr = 14
    ElseIf (mNk = 6) Or (mNb = 6) Then
        mNr = 12
    Else
        mNr = 10
    End If
End Sub

Private Function SubWord(ByVal Word As Long) As Long
    With AsQByteArr(Word)
        .Bytes(0) = mSBox(.Bytes(0))
        .Bytes(1) = mSBox(.Bytes(1))
        .Bytes(2) = mSBox(.Bytes(2))
        .Bytes(3) = mSBox(.Bytes(3))
        
        SubWord = AsLong(.Bytes(0))
    End With
End Function

''
' Creates a decryption version of the expanded key. This will not be
' used if the CipherMode is CFB.
'
Private Function CreateDecryptionKey(ByRef ExpKey() As Long) As Long()
    Dim Ret() As Long
    ReDim Ret(0 To UBound(ExpKey))

    Dim i    As Long
    Dim j    As Long
    Dim K    As Long
    K = mNb * mNr
    For i = 0 To mNr
        Call CopyMemory(Ret(j), ExpKey(K), mBlockSizeBytes)
        j = j + mNb
        K = K - mNb
    Next i
    
    Dim Te4(0 To 255) As Long
    Dim Td0(0 To 255) As Long
    Dim Td1(0 To 255) As Long
    Dim Td2(0 To 255) As Long
    Dim Td3(0 To 255) As Long
    
    Call CopyMemory(Td0(0), ByVal Rijndael.Td0Ptr, 1024)
    Call CopyMemory(Td1(0), ByVal Rijndael.Td1Ptr, 1024)
    Call CopyMemory(Td2(0), ByVal Rijndael.Td2Ptr, 1024)
    Call CopyMemory(Td3(0), ByVal Rijndael.Td3Ptr, 1024)
    Call CopyMemory(Te4(0), ByVal Rijndael.Te4Ptr, 1024)
    
    For i = mNb To mNb * mNr - 1
        With AsQByteArr(Ret(i))
            Ret(i) = Td0(Te4(.Bytes(0)) And &HFF&) Xor _
                     Td1(Te4(.Bytes(1)) And &HFF&) Xor _
                     Td2(Te4(.Bytes(2)) And &HFF&) Xor _
                     Td3(Te4(.Bytes(3)) And &HFF&)
        End With
    Next i
    
    CreateDecryptionKey = Ret
End Function

Private Sub InitLookupTables()
    If (mIsEncrypting) Or (mMode = CipherMode.CFB) Then
        Call CopyMemory(mT0(0), ByVal Rijndael.Te0Ptr, 1024)
        Call CopyMemory(mT1(0), ByVal Rijndael.Te1Ptr, 1024)
        Call CopyMemory(mT2(0), ByVal Rijndael.Te2Ptr, 1024)
        Call CopyMemory(mT3(0), ByVal Rijndael.Te3Ptr, 1024)
        Call CopyMemory(mT4(0), ByVal Rijndael.Te4Ptr, 1024)
    Else
        Call CopyMemory(mT0(0), ByVal Rijndael.Td0Ptr, 1024)
        Call CopyMemory(mT1(0), ByVal Rijndael.Td1Ptr, 1024)
        Call CopyMemory(mT2(0), ByVal Rijndael.Td2Ptr, 1024)
        Call CopyMemory(mT3(0), ByVal Rijndael.Td3Ptr, 1024)
        Call CopyMemory(mT4(0), ByVal Rijndael.Td4Ptr, 1024)
    End If
    
    SAPtr(mSBox) = Rijndael.SBoxPtr
    SAPtr(mRCon) = Rijndael.RConPtr
End Sub


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   Class Events
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Class_Initialize()
    mTmpPtr = VarPtr(mTmp.T0)
    mSPtr = VarPtr(mTmp.s(0))
End Sub

Private Sub Class_Terminate()
    SAPtr(mSBox) = vbNullPtr
    SAPtr(mRCon) = vbNullPtr
End Sub


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   IObject Interface
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Function IObject_Equals(Value As Variant) As Boolean
    IObject_Equals = Equals(Value)
End Function

Private Function IObject_GetHashcode() As Long
    IObject_GetHashcode = GetHashCode
End Function

Private Function IObject_ToString() As String
    IObject_ToString = ToString
End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   ICryptoTransform Interface
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Property Get ICryptoTransform_CanReuseTransform() As Boolean
    ICryptoTransform_CanReuseTransform = CanReuseTransform
End Property

Private Property Get ICryptoTransform_CanTransformMultipleBlocks() As Boolean
    ICryptoTransform_CanTransformMultipleBlocks = CanTransformMultipleBlocks
End Property

Private Property Get ICryptoTransform_InputBlockSize() As Long
    ICryptoTransform_InputBlockSize = InputBlockSize
End Property

Private Property Get ICryptoTransform_OutputBlockSize() As Long
    ICryptoTransform_OutputBlockSize = OutputBlockSize
End Property

Private Function ICryptoTransform_TransformBlock(InputBuffer() As Byte, ByVal InputOffset As Long, ByVal InputCount As Long, OutputBuffer() As Byte, ByVal OutputOffset As Long) As Long
    ICryptoTransform_TransformBlock = TransformBlock(InputBuffer, InputOffset, InputCount, OutputBuffer, OutputOffset)
End Function

Private Function ICryptoTransform_TransformFinalBlock(InputBuffer() As Byte, ByVal InputOffset As Long, ByVal InputCount As Long) As Byte()
    ICryptoTransform_TransformFinalBlock = TransformFinalBlock(InputBuffer, InputOffset, InputCount)
End Function


⌨️ 快捷键说明

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