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

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

?? aesxam.cpp

?? 算法從speakfs提取
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
            if(rlen > 0 && rlen < BLOCK_LEN)
            {
                // move the previous ciphertext to top half of double buffer
                // since rlen bytes of this are output last
                for(i = 0; i < BLOCK_LEN; ++i)
                    dbuf[i + BLOCK_LEN] = dbuf[i];

                // read last part of plaintext into bottom half of buffer
                if(fread(dbuf, 1, rlen, fin) != rlen)
                    return READ_ERROR;

                // clear the remainder of the bottom half of buffer
                for(i = 0; i < BLOCK_LEN - rlen; ++i)
                    dbuf[rlen + i] = 0;

                // do CBC chaining from previous ciphertext
                for(i = 0; i < BLOCK_LEN; ++i)
                    dbuf[i] ^= dbuf[i + BLOCK_LEN];

                // encrypt the final block
                aes_enc_blk((unsigned char*)(char const*)dbuf, (unsigned char*)dbuf, ctx);

                // set the length of the final write
                len = rlen + BLOCK_LEN; rlen = 0;
            }

            // write the encrypted block
            if(fwrite(dbuf, 1, len, fout) != len)
                return WRITE_ERROR;
        }
    }

    return 0;
}

int decfile(FILE *fin, FILE *fout, aes_ctx *ctx, const char* ifn, const char* ofn)
{   char            buf1[BLOCK_LEN], buf2[BLOCK_LEN], dbuf[2 * BLOCK_LEN];
    char            *b1, *b2, *bt;
    fpos_t          flen;
    unsigned long   i, len, rlen;

    // find the file length

    fseek(fin, 0, SEEK_END);
    fgetpos(fin, &flen); 
    rlen = file_len(flen);
    // reset to start
    fseek(fin, 0, SEEK_SET);

    if(rlen <= 2 * BLOCK_LEN)
    {   // if the original file length is less than or equal to 16 bytes

        // read the bytes of the file and verify length
        len = (unsigned long)fread(dbuf, 1, 2 * BLOCK_LEN, fin);
        rlen -= len;
        if(rlen > 0)
            return READ_ERROR;

        // set the original file length
        len -= BLOCK_LEN;

        // decrypt from position len to position len + BLOCK_LEN
        aes_dec_blk((unsigned char*)(char const*)(dbuf + len), (unsigned char*)(dbuf + BLOCK_LEN), ctx);

        // undo CBC chaining
        for(i = 0; i < len; ++i)
            dbuf[i] ^= dbuf[i + BLOCK_LEN];

        // output decrypted bytes
        if(fwrite(dbuf, 1, len, fout) != len)
            return WRITE_ERROR; 
    }
    else
    {   // we need two input buffers because we have to keep the previous
        // ciphertext block - the pointers b1 and b2 are swapped once per
        // loop so that b2 points to new ciphertext block and b1 to the
        // last ciphertext block

        rlen -= BLOCK_LEN; b1 = buf1; b2 = buf2;

        // input the IV
        if(fread(b1, 1, BLOCK_LEN, fin) != BLOCK_LEN)
            return READ_ERROR;
        
        // read the encrypted file a block at a time
        while(rlen > 0 && !feof(fin))
        {
            // input a block and reduce the remaining byte count
            len = (unsigned long)fread(b2, 1, BLOCK_LEN, fin);
            rlen -= len;

            // verify the length of the read operation
            if(len != BLOCK_LEN)
                return READ_ERROR;

            // decrypt input buffer
            aes_dec_blk((unsigned char*)(char const*)b2, (unsigned char*)dbuf, ctx);

            // if there is only one more block do ciphertext stealing
            if(rlen > 0 && rlen < BLOCK_LEN)
            {
                // read last ciphertext block
                if(fread(b2, 1, rlen, fin) != rlen)
                    return READ_ERROR;

                // append high part of last decrypted block
                for(i = rlen; i < BLOCK_LEN; ++i)
                    b2[i] = dbuf[i];

                // decrypt last block of plaintext
                for(i = 0; i < rlen; ++i)
                    dbuf[i + BLOCK_LEN] = dbuf[i] ^ b2[i];

                // decrypt last but one block of plaintext
                aes_dec_blk((unsigned char*)(char const*)b2, (unsigned char*)dbuf, ctx);

                // adjust length of last output block
                len = rlen + BLOCK_LEN; rlen = 0;
            }

            // unchain CBC using the last ciphertext block
            for(i = 0; i < BLOCK_LEN; ++i)
                dbuf[i] ^= b1[i];

            // write decrypted block
            if(fwrite(dbuf, 1, len, fout) != len)
                return WRITE_ERROR;

            // swap the buffer pointers
            bt = b1, b1 = b2, b2 = bt;
        }
    }

    return 0;
}

int main(int argc, char *argv[])
{   FILE        *fin = 0, *fout = 0;
    char        *cp, ch, key[32];
    int         i, by, key_len, err = 0;
    aes_ctx     ctx[1];

    if(argc != 5 || toupper(*argv[3]) != 'D' && toupper(*argv[3]) != 'E')
    {
        printf("usage: aesxam in_filename out_filename [d/e] key_in_hex\n");
        err = -1; goto exit;
    }

    ctx->n_rnd = 0; // ensure all flags are initially set to zero
    ctx->n_blk = 0;
    cp = argv[4];   // this is a pointer to the hexadecimal key digits
    i = 0;          // this is a count for the input digits processed

    while(i < 64 && *cp)        // the maximum key length is 32 bytes and
    {                           // hence at most 64 hexadecimal digits
        ch = toupper(*cp++);    // process a hexadecimal digit
        if(ch >= '0' && ch <= '9')
            by = (by << 4) + ch - '0';
        else if(ch >= 'A' && ch <= 'F')
            by = (by << 4) + ch - 'A' + 10;
        else                    // error if not hexadecimal
        {
            printf("key must be in hexadecimal notation\n");
            err = -2; goto exit;
        }

        // store a key byte for each pair of hexadecimal digits
        if(i++ & 1)
            key[i / 2 - 1] = by & 0xff;
    }

    if(*cp)
    {
        printf("The key value is too long\n");
        err = -3; goto exit;
    }
    else if(i < 32 || (i & 15))
    {
        printf("The key length must be 32, 48 or 64 hexadecimal digits\n");
        err = -4; goto exit;
    }

    key_len = i / 2;

    if(!(fin = fopen(argv[1], "rb")))   // try to open the input file
    {
        printf("The input file: %s could not be opened\n", argv[1]);
        err = -5; goto exit;
    }

    if(!(fout = fopen(argv[2], "wb")))  // try to open the output file
    {
        printf("The input file: %s could not be opened\n", argv[1]);
        err = -6; goto exit;
    }

    if(toupper(*argv[3]) == 'E') // encryption in Cipher Block Chaining mode
    {
        aes_enc_key((unsigned char*)(char const*)key, key_len, ctx);

        err = encfile(fin, fout, ctx, argv[1], argv[2]);
    }
    else                         // decryption in Cipher Block Chaining mode
    {
        aes_dec_key((unsigned char*)(char const*)key, key_len, ctx);

        err = decfile(fin, fout, ctx, argv[1], argv[2]);
    }
exit:
    if(err == READ_ERROR)
        printf("Error reading from input file: %s\n", argv[1]);

    if(err == WRITE_ERROR)
        printf("Error writing to output file: %s\n", argv[2]);

    if(fout)
        fclose(fout);

    if(fin)
        fclose(fin);

    return err;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区日韩一区| 精品99999| 国产+成+人+亚洲欧洲自线| 日本最新不卡在线| 日韩精品一区第一页| 午夜在线成人av| 五月激情综合网| 婷婷六月综合亚洲| 久久精品国产第一区二区三区| 男女激情视频一区| 国产精品2024| www.在线成人| 欧美视频一区在线| 日韩欧美国产一区在线观看| 国产亚洲精久久久久久| 国产精品人人做人人爽人人添| 自拍偷拍亚洲综合| 亚洲动漫第一页| 久久99精品久久久久| 韩日av一区二区| 成人免费黄色在线| 91福利在线免费观看| 4hu四虎永久在线影院成人| 制服丝袜亚洲播放| 久久精品一二三| 夜夜夜精品看看| 国内成人免费视频| 日本韩国欧美三级| 2017欧美狠狠色| 亚洲欧美日韩在线不卡| 麻豆久久久久久| 99久久精品国产精品久久| 欧美日韩国产高清一区二区三区| 精品日韩成人av| 亚洲免费视频中文字幕| 精品一区二区三区久久久| 97久久超碰国产精品| 91精品国产综合久久久久久久久久 | 在线影院国内精品| 日韩午夜av一区| 亚洲免费视频成人| 国产成人精品综合在线观看| 欧美日韩一区二区三区在线看| 久久久亚洲午夜电影| 婷婷开心激情综合| 成人综合婷婷国产精品久久| 日韩欧美在线网站| 一级日本不卡的影视| 国产精品亚洲人在线观看| 欧美日韩专区在线| 亚洲日穴在线视频| 国产成人av影院| 欧美videos大乳护士334| 亚洲大片精品永久免费| 99久久精品免费看国产免费软件| 精品国产乱码久久久久久久久| 亚洲国产视频a| 94色蜜桃网一区二区三区| 国产亚洲欧美一级| 狠狠色丁香婷婷综合| 日韩午夜激情av| 日日欢夜夜爽一区| 欧美四级电影在线观看| 伊人色综合久久天天| 成人性生交大片免费看中文| 久久亚洲一区二区三区明星换脸| 免费看黄色91| 欧美一区二区三区小说| 视频一区二区三区在线| 欧美日韩精品一区二区| 亚洲午夜精品网| 91浏览器入口在线观看| 中文字幕一区av| 波多野结衣中文字幕一区二区三区| 精品国产乱码久久久久久蜜臀| 久热成人在线视频| 欧美草草影院在线视频| 久久99精品久久只有精品| 欧美成人bangbros| 国产乱人伦偷精品视频不卡| 久久亚洲一区二区三区四区| 国产一区 二区| 国产视频一区二区在线观看| 国产在线一区观看| 久久精品视频网| 99国产麻豆精品| 一区二区三区精品| 9191成人精品久久| 另类调教123区| 国产偷v国产偷v亚洲高清 | 国产精品热久久久久夜色精品三区 | 色婷婷激情一区二区三区| 夜色激情一区二区| 5月丁香婷婷综合| 韩国成人精品a∨在线观看| 国产日韩精品视频一区| 波多野结衣的一区二区三区| 亚洲高清免费观看| 精品福利一区二区三区| 成人爽a毛片一区二区免费| 怡红院av一区二区三区| 日韩视频不卡中文| 懂色av噜噜一区二区三区av| 一区二区三区四区精品在线视频 | 欧美激情一二三区| 欧美亚洲国产一区在线观看网站| 男女男精品视频网| 亚洲丝袜制服诱惑| 欧美不卡激情三级在线观看| www.亚洲人| 日韩1区2区3区| 国产精品国产a| 欧美酷刑日本凌虐凌虐| 国产成人三级在线观看| 亚洲电影第三页| 久久精品视频一区二区三区| 欧美三级日韩在线| 国产jizzjizz一区二区| 午夜精品在线看| 国产精品剧情在线亚洲| 日韩欧美国产综合在线一区二区三区| 成人aa视频在线观看| 久久99精品国产.久久久久 | 日本色综合中文字幕| 自拍偷在线精品自拍偷无码专区| 日韩精品一区二区三区四区视频 | ...中文天堂在线一区| 日韩欧美国产综合| 欧美色大人视频| av一区二区三区四区| 国产一区二区三区综合| 亚洲国产sm捆绑调教视频 | 337p粉嫩大胆色噜噜噜噜亚洲 | 7777精品伊人久久久大香线蕉超级流畅 | 依依成人综合视频| 中文字幕免费不卡在线| 日韩三级视频在线看| 欧美性大战久久久久久久蜜臀 | 国产精品一区一区| 日韩av一区二区在线影视| 亚洲精品国产无天堂网2021| 欧美激情一区二区在线| 欧美本精品男人aⅴ天堂| 欧美午夜宅男影院| 91搞黄在线观看| 色美美综合视频| 91捆绑美女网站| gogogo免费视频观看亚洲一| 国产v综合v亚洲欧| 粉嫩高潮美女一区二区三区| 国产精品自拍av| 国产精品中文字幕日韩精品| 久久99热99| 黄色小说综合网站| 国产精品综合视频| 成人午夜在线视频| 成人激情动漫在线观看| 白白色亚洲国产精品| 色综合网色综合| 在线观看一区二区视频| 欧美日韩在线综合| 欧美一级午夜免费电影| 精品国产伦一区二区三区免费 | 日韩欧美一卡二卡| 精品国产区一区| 国产日韩av一区二区| 中文字幕一区二区三区av| 亚洲色图第一区| 亚洲宅男天堂在线观看无病毒| 香蕉成人啪国产精品视频综合网| 青草av.久久免费一区| 国产精品自拍网站| 色诱视频网站一区| 宅男噜噜噜66一区二区66| 精品国产伦一区二区三区观看方式 | 日韩免费福利电影在线观看| 日韩精品一区二区三区在线| 久久九九99视频| 亚洲精品第1页| 日本不卡视频一二三区| 国产传媒日韩欧美成人| 色综合中文字幕| 日韩欧美你懂的| 亚洲欧美日韩小说| 精品一区二区三区在线视频| 粉嫩一区二区三区性色av| 欧美亚洲一区二区在线| 久久综合九色综合97婷婷| 亚洲精品国产a久久久久久| 九九热在线视频观看这里只有精品| 成人永久aaa| 在线播放91灌醉迷j高跟美女| 欧美电视剧免费观看| 亚洲特级片在线| 久久国产夜色精品鲁鲁99| 91亚洲午夜精品久久久久久| 精品国产乱码久久久久久蜜臀| 亚洲三级免费观看| 国内精品久久久久影院一蜜桃| 日本道在线观看一区二区|