亚洲欧美第一页_禁久久精品乱码_粉嫩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电影免费观看高清完整版 | 欧美日韩日日骚| 日韩视频一区在线观看| 亚洲天堂中文字幕| 国产成人综合自拍| 日韩一区二区三区在线视频| 亚洲欧美日本在线| 国产精品资源网站| 日韩欧美资源站| 天天综合日日夜夜精品| 99久精品国产| 国产三级精品视频| 国产在线播精品第三| 欧美精品日韩综合在线| 亚洲色图视频网| 成人中文字幕合集| 久久久久久夜精品精品免费| 性感美女久久精品| 欧美自拍丝袜亚洲| 玉足女爽爽91| 99久久伊人精品| 中文字幕av不卡| 国产精品一区专区| 精品免费日韩av| 免费在线观看成人| 日韩欧美123| 麻豆成人久久精品二区三区红| 欧美日韩国产大片| 亚洲成人黄色影院| 91精品欧美福利在线观看| 图片区小说区区亚洲影院| 欧美日韩国产一区二区三区地区| 亚洲免费观看在线观看| 欧美三级日韩三级| 午夜国产精品影院在线观看| 欧美卡1卡2卡| 免费观看一级欧美片| 精品日韩一区二区三区| 国产乱人伦精品一区二区在线观看| 久久精品亚洲乱码伦伦中文 | 久久久久久久国产精品影院| 国产一区二区三区免费看| 久久精品日韩一区二区三区| 国产成人精品亚洲日本在线桃色| 久久精品欧美一区二区三区不卡| 成人一级片网址| |精品福利一区二区三区| 在线视频你懂得一区| 天天色图综合网| 日韩一卡二卡三卡四卡| 国产麻豆精品视频| 国产精品国产三级国产专播品爱网| 色噜噜夜夜夜综合网| 日韩精品午夜视频| 欧美激情资源网| 欧美在线999| 激情另类小说区图片区视频区| 国产欧美精品日韩区二区麻豆天美| 99久久国产免费看| 日韩精品国产精品| 国产精品视频一二三| 欧美日精品一区视频| 国产一区二区三区在线观看精品| 亚洲精品日韩一| 精品久久久久一区二区国产| 92国产精品观看| 男男视频亚洲欧美| 亚洲乱码国产乱码精品精98午夜| 日韩欧美激情在线| 欧美午夜不卡视频| 国产美女久久久久| 午夜视频在线观看一区二区三区| 国产日韩精品久久久| 欧美丝袜自拍制服另类| 国产黄色精品网站| 男女性色大片免费观看一区二区| 亚洲欧美日韩中文播放| 久久亚洲一区二区三区四区| 欧美亚洲免费在线一区| 国产成人午夜精品5599| 日本亚洲欧美天堂免费| 亚洲欧洲美洲综合色网| 久久嫩草精品久久久精品| 欧美日韩一区二区在线观看| 99精品国产视频| 国产电影精品久久禁18| 免费日韩伦理电影| 午夜亚洲福利老司机| 中文字幕一区二区5566日韩| 欧美成人vr18sexvr| 欧美午夜片在线看| 色综合久久88色综合天天| 国产精品一区专区| 国内精品久久久久影院色 | 一区二区在线观看免费| 亚洲精品一区在线观看| 欧美日韩亚洲综合一区| 91麻豆国产精品久久| 国产成人av电影在线观看| 美女脱光内衣内裤视频久久影院| 亚洲一区在线观看免费观看电影高清| 国产亚洲欧美日韩俺去了| 欧美成人福利视频| 2023国产一二三区日本精品2022| 欧美一区二区三区喷汁尤物| 欧美区视频在线观看| 欧美色综合网站| 欧美日韩一区在线| 欧美妇女性影城| 欧美老人xxxx18| 日韩视频在线你懂得| 日韩精品中文字幕在线不卡尤物 | 欧美日韩一区二区三区在线看 | 污片在线观看一区二区| 亚洲一区二区三区四区在线观看 | 在线精品亚洲一区二区不卡| 色综合天天天天做夜夜夜夜做| www.亚洲国产| 91美女片黄在线观看| 在线视频你懂得一区| 欧美日韩不卡视频| 欧美大胆一级视频| 久久久久久久电影| 亚洲免费伊人电影| 婷婷中文字幕一区三区| 久久电影国产免费久久电影 | 欧美日韩一区不卡| 欧美人妇做爰xxxⅹ性高电影 | 欧美日韩中文另类| 日韩欧美综合一区| 国产三级精品三级在线专区| 日韩一区在线看| 亚洲第一精品在线| 另类人妖一区二区av| 国产福利一区在线观看| 91小视频在线观看| 欧美日韩1区2区| 久久久久久一二三区| 亚洲欧美另类综合偷拍| 视频一区在线视频| 大胆欧美人体老妇| 在线精品视频一区二区三四| 日韩你懂的在线播放| 国产婷婷色一区二区三区 | 国产激情91久久精品导航| 在线观看网站黄不卡| 欧美成人艳星乳罩| 亚洲精品中文字幕乱码三区 | 亚洲欧洲制服丝袜| 亚洲成va人在线观看| 另类小说综合欧美亚洲| 91在线观看地址| 日韩久久久精品| 一区二区欧美国产| 麻豆91精品91久久久的内涵| 99久久精品久久久久久清纯| 91精品国产入口| 国产精品国产馆在线真实露脸| 图片区小说区国产精品视频| 99热这里都是精品| 精品免费日韩av| 亚洲成av人片在线| 成人教育av在线| 日韩免费视频线观看| 亚洲国产成人va在线观看天堂| 国产成人免费9x9x人网站视频| 欧美另类videos死尸| 亚洲区小说区图片区qvod| 国产精品99久久久久久有的能看| 欧美高清一级片在线| 亚洲欧美日韩在线播放| 国产99久久久国产精品潘金网站| 91.xcao| 亚洲三级电影网站| 成人精品亚洲人成在线| 久久综合中文字幕| 男女性色大片免费观看一区二区| 欧美体内she精高潮| 亚洲婷婷综合久久一本伊一区| 丁香婷婷综合色啪| 2023国产精品视频| 国产乱色国产精品免费视频| 欧美电影免费观看高清完整版在线| 亚洲伊人伊色伊影伊综合网| 色爱区综合激月婷婷| 亚洲色图19p| 99精品欧美一区二区三区小说| 久久免费看少妇高潮| 国产精品中文字幕一区二区三区| 欧美一级黄色片| 秋霞午夜鲁丝一区二区老狼| 色综合天天综合网天天狠天天| 国产精品美女视频| av亚洲精华国产精华| 一色桃子久久精品亚洲| 91视频国产观看| 亚洲欧美日韩久久|