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

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

?? clskeyinstance.cls

?? Rjindeal加密算法
?? CLS
?? 第 1 頁 / 共 2 頁
字號:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "rijndaelKeyInstance"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False

Option Explicit

' Where I've thought it appropriate, I've left the original
' source code commented out here.
' This is for my reference so that I can trace bugs more
' easily.
' See Readme.rtf file (included) for credits.
' This implementation by Jonathan Daniel, January 2001

Public mDirection As RijnDaelEncDirections
Public mkeyLength As Long
Public mkeyMaterial As String
Public mNr As Long
Private mRk(4 * (MAXNR + 1)) As Long
Private mEk(4 * (MAXNR + 1)) As Long
Public Mode As RijnDaelCipherModes
Private IV(MAXIVSIZE) As Long


' Next two functions are intended for use with two-way encrypted conversations
' As I don't know too much about encryption, these are probably
' totally wrong - if they are, tell me, and I'll change them.
' VB won't let me compile this until I put this class into
' an OCX.  Therefore I've left them commented until next release.
'Type RijnDaelDistributableKey
'    Algorithm As Long ' Shrug. 1 = DES, 2 = RijnDael ?
'    CipherMode As RijnDaelCipherModes
'    KeySize As Long
'    rk(4 * (MAXNR + 1)) As Long
'    Nr As Long
'    IV(MAXIVSIZE) As Long
'End Type
'Public Function CreateDistributableKey() As RijnDaelDistributableKey
'Dim tmpRDDK As RijnDaelDistributableKey
'Dim i As Long
'    tmpRDDK.Algorithm = 2
'    tmpRDDK.CipherMode = Mode
'    tmpRDDK.KeySize = mkeyLength
'    tmpRDDK.Nr = mNr
'    For i = 0 To UBound(mek)
'        tmpRDDK.rk(i) = mek(i)
'    Next
'    CreateDistributableKey = tmpRDDK
'    For i = 0 To UBound(IV)
'        tmpRDDK.IV(i) = IV(i)
'    Next
'End Function
'
'Public Function MakeEncryptKeyFromDistributedType(pRDDK As RijnDaelDistributableKey) As Long
'Dim i As Long
'    mDirection = Encrypt
'    If pRDDK.KeySize = 128 Or pRDDK.KeySize = 192 Or pRDDK.KeySize = 256 Then
'        mkeyLength = KeyLength
'    Else
'        MakeEncryptKeyFromDistributedType = 0
'        Exit Function
'    End If
'    mNr = pRDDK.Nr
'    For i = 0 To UBound(pRDDK.rk)
'        mRk(i) = pRDDK.rk(i)
'        mEk(i) = pRDDK.rk(i)
'    Next
'    CipherInit pRDDK.CipherMode, pRDDK.IV(0), pRDDK.IV(1), pRDDK.IV(2), pRDDK.IV(3)
'End Function

Public Function ConvertPassWordStringToMakeKeyAcceptableFormat(PassWord As String, KeyLength As Long) As String
Dim i As Long, j As Long
Dim tmpStr As String
    If Not (KeyLength = 128 Or KeyLength = 192 Or KeyLength = 256) Then
        Err.Raise 1, "rijndaelKeyInstance.ConvertPassWordStringToMakeKeyAcceptableFormat", "KeyLength must be 128, 192 or 256"
    End If
    tmpStr = ""
    If Len(PassWord) < (KeyLength / 8) Then
        j = Len(PassWord)
    Else
        j = KeyLength / 8
    End If
    For i = 1 To j
        tmpStr = tmpStr & PadHexStr(Hex(Asc(Mid(PassWord, i, 1)) And &HFF&), 2)
    Next
    ' Now need to pad the string with nulls if necessary.
    For i = 1 To ((KeyLength / 8) - j)
        tmpStr = tmpStr & PadHexStr(Hex(0), 2)
    Next
    ConvertPassWordStringToMakeKeyAcceptableFormat = tmpStr
End Function

Public Function CipherInit(pMode As RijnDaelCipherModes, Optional pIV0 As Long = 0, Optional pIV1 As Long = 0, _
        Optional pIV2 As Long = 0, Optional pIV3 As Long = 0) As Long
Dim i As Long
    Mode = pMode
    IV(0) = pIV0
    IV(1) = pIV1
    IV(2) = pIV2
    IV(3) = pIV3
End Function

Public Property Get rk(ByVal vIndex As Long) As Long
    rk = mRk(vIndex)
End Property

Public Function makeKey(KeyLength As Long, Direction As RijnDaelEncDirections, KeyMaterial As String, Optional pMode As RijnDaelCipherModes = -1, Optional pIV0 As Long = 0, Optional pIV1 As Long = 0, _
        Optional pIV2 As Long = 0, Optional pIV3 As Long = 0) As Long
Dim i As Long
Dim keyMat As String
Dim cipherKey(MAXKB) As Long

    mDirection = Direction
    If KeyLength = 128 Or KeyLength = 192 Or KeyLength = 256 Then
        mkeyLength = KeyLength
    Else
        makeKey = 0
        Exit Function
    End If
    mkeyMaterial = Mid(KeyMaterial, 1, KeyLength / 4)
'    /* initialize key schedule: */
    keyMat = mkeyMaterial
    For i = 0 To (mkeyLength / 32) - 1
        cipherKey(i) = HexStrToLong(Mid(keyMat, 1 + i * 8, 8))
    Next
    If Direction = Encrypt Then
        mNr = RijnDaelKeySetupEnc(mRk, cipherKey, KeyLength)
    Else
        mNr = rijndaelKeySetupDec(mRk, cipherKey, KeyLength)
    End If
    RijnDaelKeySetupEnc mEk, cipherKey, KeyLength
    If pMode <> -1 Then
        CipherInit pMode, pIV0, pIV1, pIV2, pIV3
    End If
    makeKey = True
    Exit Function
End Function

' Original C code for makeKey()
'int makeKey(keyInstance *key, BYTE direction, int keyLen, char *keyMaterial) {
'    int i;
'    char *keyMat;
'    u8 cipherKey[MAXKB];
'
'    if (key == NULL) {
'        return BAD_KEY_INSTANCE;
'    }
'
'    if ((direction == DIR_ENCRYPT) || (direction == DIR_DECRYPT)) {
'        key->direction = direction;
'    } else {
'        return BAD_KEY_DIR;
'    }
'
'    if ((keyLen == 128) || (keyLen == 192) || (keyLen == 256)) {
'        key->keyLen = keyLen;
'    } else {
'        return BAD_KEY_MAT;
'    }
'
'    if (keyMaterial != NULL) {
'        strncpy(key->keyMaterial, keyMaterial, keyLen/4);
'    }
'
'    /* initialize key schedule: */
'    keyMat = key->keyMaterial;
'    for (i = 0; i < key->keyLen/8; i++) {
'        int t, v;
'
'        t = *keyMat++;
'        if ((t >= '0') && (t <= '9')) v = (t - '0') << 4;
'        else if ((t >= 'a') && (t <= 'f')) v = (t - 'a' + 10) << 4;
'        else if ((t >= 'A') && (t <= 'F')) v = (t - 'A' + 10) << 4;
'        else return BAD_KEY_MAT;
'
'        t = *keyMat++;
'        if ((t >= '0') && (t <= '9')) v ^= (t - '0');
'        else if ((t >= 'a') && (t <= 'f')) v ^= (t - 'a' + 10);
'        else if ((t >= 'A') && (t <= 'F')) v ^= (t - 'A' + 10);
'        else return BAD_KEY_MAT;
'
'        cipherKey[i] = (u8)v;
'    }
'    if (direction == DIR_ENCRYPT) {
'        key->Nr = rijndaelKeySetupEnc(key->rk, cipherKey, keyLen);
'    } else {
'        key->Nr = rijndaelKeySetupDec(key->rk, cipherKey, keyLen);
'    }
'    rijndaelKeySetupEnc(key->ek, cipherKey, keyLen);
'    return TRUE;
'}

Private Sub Class_Initialize()
InitialiseRijnDaelArrays
End Sub

Public Function cipherUpdateRounds(ByRef InputArr() As Long, InputLen As Long, _
    ByRef OutArr() As Long, Rounds As Long) As Boolean
Dim i As Long, j As Long
Dim Var As Variant

    j = 0
    For Each Var In InputArr
        OutArr(j) = Var
        j = j + 1
    Next
    If mDirection = Decrypt Then
    End If
    Select Case mDirection
        Case RijnDaelEncDirections.Encrypt
            rijndaelEncryptRound mRk, mNr, OutArr, Rounds
        Case RijnDaelEncDirections.Decrypt
            rijndaelDecryptRound mRk, mNr, OutArr, Rounds
    End Select
    cipherUpdateRounds = True
End Function

' Original C Source for cipherUpdateRounds()
'int cipherUpdateRounds(cipherInstance *cipher, keyInstance *key,
'        BYTE *input, int inputLen, BYTE *outBuffer, int rounds) {
'    u8 block[16];
'
'    if (cipher == NULL || key == NULL) {
'        return BAD_CIPHER_STATE;
'    }
'
'    memcpy(block, input, 16);
'
'    switch (key->direction) {
'    Case DIR_ENCRYPT:
'        rijndaelEncryptRound(key->rk, key->Nr, block, rounds);
'        break;
'
'    Case DIR_DECRYPT:
'        rijndaelDecryptRound(key->rk, key->Nr, block, rounds);
'        break;
'
'default:
'        return BAD_KEY_DIR;
'    }
'
'    memcpy(outBuffer, block, 16);
'
'    return TRUE;
'}

Public Function blockEncrypt(InputBuffer() As Long, InputLen As Long, _
                OutBuffer() As Long) As Long
Dim i As Long, j As Long, k As Long, t As Long, numBlocks As Long
Dim Block(4) As Long
Dim oBlock(4) As Long
Dim tmpIV(MAXIVSIZE) As Long

    If mDirection = Decrypt Then
        Err.Raise 1, "rijnDaelKeyInstance.blockEncrypt", "You cannot try to encrypt when you only have the decrypt key"
    End If
    If InputLen <= 0 Then
        Err.Raise 2, "rijnDaelKeyInstance.blockEncrypt", "Cannot encrypt a block of zero size"
    End If
    numBlocks = InputLen / 128
    Select Case Mode
        Case RijnDaelCipherModes.ECB
            j = 0
            For i = numBlocks To 1 Step -1
                Block(0) = InputBuffer(0 + j)
                Block(1) = InputBuffer(1 + j)
                Block(2) = InputBuffer(2 + j)
                Block(3) = InputBuffer(3 + j)
                rijndaelEncrypt mRk, mNr, Block, oBlock
                OutBuffer(0 + j) = oBlock(0)
                OutBuffer(1 + j) = oBlock(1)
                OutBuffer(2 + j) = oBlock(2)
                OutBuffer(3 + j) = oBlock(3)
                j = j + 4
            Next
        Case RijnDaelCipherModes.CBC
            j = 0
            tmpIV(0) = IV(0)
            tmpIV(1) = IV(1)
            tmpIV(2) = IV(2)
            tmpIV(3) = IV(3)
            For i = numBlocks To 1 Step -1
                Block(0) = InputBuffer(0 + j) Xor tmpIV(0)
                Block(1) = InputBuffer(1 + j) Xor tmpIV(1)
                Block(2) = InputBuffer(2 + j) Xor tmpIV(2)
                Block(3) = InputBuffer(3 + j) Xor tmpIV(4)
                rijndaelEncrypt mRk, mNr, Block, oBlock
                OutBuffer(0 + j) = oBlock(0)
                OutBuffer(1 + j) = oBlock(1)
                OutBuffer(2 + j) = oBlock(2)
                OutBuffer(3 + j) = oBlock(3)
                tmpIV(0) = oBlock(0)
                tmpIV(1) = oBlock(1)
                tmpIV(2) = oBlock(2)
                tmpIV(3) = oBlock(3)
                j = j + 4
            Next
        Case RijnDaelCipherModes.CFB1
            Err.Raise 3, "rijndaelKeyInstance.BlockEncrypt", "Encryption mode CFB1 not yet supported, sorry!"
            ' This is because I cannot be arsed to piss about with individual bytes
            ' which this mode requires.
            ' Maybe later if someone asks VERY nicely.
            '    Case MODE_CFB1:
'           iv = cipher->IV;
'           for (i = numBlocks; i > 0; i--) {
'            memcpy(outBuffer, input, 16);
'            for (k = 0; k < 128; k++) {
'                rijndaelEncrypt(key->ek, key->Nr, iv, block);
'                outBuffer[k >> 3] ^= (block[0] & 0x80U) >> (k & 7);
'                for (t = 0; t < 15; t++) {
'                    iv[t] = (iv[t] << 1) | (iv[t + 1] >> 7);
'                }
'                iv[15] = (iv[15] << 1) | ((outBuffer[k >> 3] >> (7 - (k & 7))) & 1);
'            }
'            outBuffer += 16;
'            input += 16;
'        }
'        break;
    End Select
    blockEncrypt = 128 * numBlocks
End Function

'Original C-Source for blockEncrypt
'int blockEncrypt(cipherInstance *cipher, keyInstance *key,
'        BYTE *input, int inputLen, BYTE *outBuffer) {
'    int i, k, t, numBlocks;
'    u8 block[16], *iv;
'
'    if (cipher == NULL ||
'        key == NULL ||
'        key->direction == DIR_DECRYPT) {
'        return BAD_CIPHER_STATE;
'    }
'    if (input == NULL || inputLen <= 0) {
'        return 0; /* nothing to do */
'    }
'
'    numBlocks = inputLen/128;
'
'    switch (cipher->mode) {
'    Case MODE_ECB:
'        for (i = numBlocks; i > 0; i--) {
'            rijndaelEncrypt(key->rk, key->Nr, input, outBuffer);
'            input += 16;
'            outBuffer += 16;
'        }
'        break;
'
'    Case MODE_CBC:
'        iv = cipher->IV;
'        for (i = numBlocks; i > 0; i--) {
'            ((u32*)block)[0] = ((u32*)input)[0] ^ ((u32*)iv)[0];
'            ((u32*)block)[1] = ((u32*)input)[1] ^ ((u32*)iv)[1];
'            ((u32*)block)[2] = ((u32*)input)[2] ^ ((u32*)iv)[2];
'            ((u32*)block)[3] = ((u32*)input)[3] ^ ((u32*)iv)[3];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区三区在线视频| 久久精品国产精品亚洲红杏| 欧美大片国产精品| av在线这里只有精品| 视频在线观看一区二区三区| 亚洲图片你懂的| 久久久国产午夜精品| 欧美日韩一区国产| 懂色av中文字幕一区二区三区| 日韩一区欧美小说| 久久久久久麻豆| 欧美一级二级在线观看| 在线观看亚洲成人| 成人av电影免费在线播放| 亚洲另类色综合网站| 国产精品私人影院| 精品国产免费人成电影在线观看四季 | 91精品视频网| 色94色欧美sute亚洲线路一ni| 成人性生交大合| 国产一区二区三区久久久| 日本美女一区二区| 亚洲成人黄色小说| 亚洲成在线观看| 亚洲精品乱码久久久久久黑人| 中文字幕久久午夜不卡| 久久人人97超碰com| 日韩精品一区二区三区在线观看 | 成人免费av网站| 国产裸体歌舞团一区二区| 麻豆专区一区二区三区四区五区| 亚洲国产精品人人做人人爽| 一区二区三区小说| 亚洲一区在线观看网站| 亚洲精品久久7777| 亚洲精品欧美综合四区| 一区二区三区蜜桃| 亚洲综合视频网| 亚洲制服丝袜一区| 视频在线观看一区| 蜜臀av国产精品久久久久| 麻豆精品在线播放| 捆绑紧缚一区二区三区视频| 麻豆精品久久久| 国产综合色精品一区二区三区| 国产乱码精品一区二区三区忘忧草 | 亚洲综合久久久久| 亚洲一区二区三区四区五区黄| 亚洲综合偷拍欧美一区色| 五月天欧美精品| 美美哒免费高清在线观看视频一区二区 | 国产精品的网站| 亚洲欧美色图小说| 午夜精品视频在线观看| 日本一区中文字幕| 国内不卡的二区三区中文字幕| 成人在线视频一区| 色婷婷香蕉在线一区二区| 精品视频在线视频| 欧美一区二区三区性视频| 久久久久久免费毛片精品| 成人欧美一区二区三区视频网页| 亚洲人成在线观看一区二区| 亚洲成a人v欧美综合天堂下载| 美美哒免费高清在线观看视频一区二区| 老司机一区二区| 成人免费的视频| 欧洲精品一区二区三区在线观看| 欧美高清视频一二三区| 久久先锋资源网| 亚洲欧美国产毛片在线| 婷婷一区二区三区| 国产精品18久久久久久vr| 91免费视频网址| 欧美一区2区视频在线观看| 国产农村妇女毛片精品久久麻豆 | 国产一区二区影院| 色综合天天狠狠| 欧美成人伊人久久综合网| 最新不卡av在线| 日韩成人免费在线| 白白色亚洲国产精品| 欧美乱熟臀69xxxxxx| 国产欧美日韩在线| 亚洲影院久久精品| 国内成人免费视频| 欧美日韩电影在线| 国产欧美日韩视频一区二区| 午夜精品一区二区三区免费视频| 国v精品久久久网| 91激情五月电影| 精品久久久久久亚洲综合网 | 在线影院国内精品| 久久影院午夜论| 亚洲在线视频一区| 国产不卡视频在线观看| 成人黄色综合网站| 欧美va亚洲va| 亚洲福利视频三区| 99免费精品视频| 26uuu成人网一区二区三区| 亚洲成人免费电影| 99精品偷自拍| 国产亚洲欧洲一区高清在线观看| 亚洲成人一区二区| 色婷婷综合视频在线观看| 久久新电视剧免费观看| 日本亚洲欧美天堂免费| 色菇凉天天综合网| 在线综合亚洲欧美在线视频| 国产一区在线看| 亚洲综合男人的天堂| 精品无人区卡一卡二卡三乱码免费卡 | 欧洲另类一二三四区| 欧美一区二区视频在线观看2022| 久久噜噜亚洲综合| 亚洲成av人在线观看| av激情综合网| 久久精品视频免费| 丝袜美腿亚洲综合| 久久综合久久99| 国产精品福利一区二区三区| 久久精品av麻豆的观看方式| 9191久久久久久久久久久| 亚洲一区二区不卡免费| 99久久久久久99| 中文字幕一区二区不卡| 国产a视频精品免费观看| 久久先锋影音av| 欧美bbbbb| 欧美伦理影视网| 热久久免费视频| 日韩一区二区三区av| 日韩黄色免费电影| 欧美精品v日韩精品v韩国精品v| 亚洲精选视频在线| 欧洲日韩一区二区三区| 亚洲女子a中天字幕| 欧美羞羞免费网站| 亚洲第一成人在线| 欧美久久久久久久久久| 日本不卡不码高清免费观看| 69久久99精品久久久久婷婷 | 中文字幕免费一区| 成人午夜在线视频| 国产精品传媒在线| 91久久精品一区二区二区| 亚洲一区电影777| 欧美一区二区视频观看视频| 韩日欧美一区二区三区| 精品成人一区二区三区四区| 久久综合狠狠综合久久综合88| 国产成人精品www牛牛影视| 亚洲色图欧洲色图婷婷| 欧美揉bbbbb揉bbbbb| 蜜臀a∨国产成人精品| 国产午夜精品福利| 91一区二区在线| 亚洲h精品动漫在线观看| 亚洲精品一区二区三区精华液 | 在线电影院国产精品| 麻豆国产精品一区二区三区| 国产亚洲精品中文字幕| 91在线观看污| 欧美在线|欧美| 日本伦理一区二区| 91蝌蚪porny九色| 成人免费毛片高清视频| 亚洲精品中文字幕乱码三区| 在线免费观看不卡av| 日本亚洲电影天堂| 中文字幕不卡一区| 欧美天堂亚洲电影院在线播放| 免费xxxx性欧美18vr| 国产精品久久久久aaaa樱花 | 精品对白一区国产伦| 欧美不卡一区二区| 91亚洲男人天堂| 青草av.久久免费一区| 亚洲欧洲精品成人久久奇米网 | 国产精品欧美经典| 欧美人狂配大交3d怪物一区| 国产大陆亚洲精品国产| 亚洲成人精品影院| 国产精品久久久久久久久久免费看 | 91美女蜜桃在线| 综合婷婷亚洲小说| 日本最新不卡在线| 国产a精品视频| 一二三区精品视频| 国产欧美中文在线| 欧美丰满高潮xxxx喷水动漫| 丁香啪啪综合成人亚洲小说| 日韩国产高清在线| 国产精品久久夜| 欧美电影免费提供在线观看| 91福利国产成人精品照片| 国产成人午夜99999| 蜜臀av亚洲一区中文字幕| 亚洲精品五月天|