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

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

?? aes.cpp

?? 內詳 請讀者自行閱讀本人第一次上載
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
          unsigned char* output)
{
    unsigned long* m_State = State;
    unsigned long* m_Word  = Word;
    memcpy(m_State, input,Nb<<2);


    unsigned char temp[4];

    int r;
    for (r = 0; r < Nb; ++r)
    {
        m_State[r] ^= m_Word[r];
    }
    for (int round =1; round <Nr; ++round)
    {
        m_Word += Nb;
        /*
          假設Nb=4;
          ---------------------
          | s0 | s1 | s2 | s3 |
          ---------------------
          | s4 | s5 | s6 | s7 |
          ---------------------
          | s8 | s9 | sa | sb |
          ---------------------
          | sc | sd | se | sf |
          ---------------------
          |    |    |    |    |
          ---------------------
          |    |    |    |    |
          ---------------------
          |    |    |    |    |
          ---------------------
          */
        memcpy(m_State+Nb,m_State,12);
          /*
            Nb=4;
            ---------------------
            | s0 |    |    |    |
            ---------------------
            | s4 | s5 |    |    |
            ---------------------
            | s8 | s9 | sa |    |
            ---------------------
            | sc | sd | se | sf |
            ---------------------
            |    | s1 | s2 | s3 |
            ---------------------
            |    |    | s6 | s7 |
            ---------------------
            |    |    |    | sb |
            ---------------------
          */
        for(r =0; r<Nb; r++)
        {

            //    temp = {Sbox[s0],Sbox[s5],Sbox[sa],Sbox[sf]};

            temp[0] = Sbox[*((unsigned char*)m_State)];
            temp[1] = Sbox[*((unsigned char*)m_State+5)];
            temp[2] = Sbox[*((unsigned char*)m_State+10)];
            temp[3] = Sbox[*((unsigned char*)m_State+15)];

            *((unsigned char*)m_State)        = Log_02[temp[0]] ^ Log_03[temp[1]] ^ temp[2] ^ temp[3];
            *((unsigned char*)m_State+1)      = Log_02[temp[1]] ^ Log_03[temp[2]] ^ temp[3] ^ temp[0];
            *((unsigned char*)m_State+2)      = Log_02[temp[2]] ^ Log_03[temp[3]] ^ temp[0] ^ temp[1];
            *((unsigned char*)m_State+3)      = Log_02[temp[3]] ^ Log_03[temp[0]] ^ temp[1] ^ temp[2];

            *m_State ^= m_Word[r];
            m_State++;
        }
        m_State -= Nb;
    }

    memcpy(m_State+Nb,m_State,12);

    m_Word += Nb;
    for(r =0; r<Nb; r++)
    {

        *((unsigned char*)m_State)   = Sbox[*(unsigned char*)m_State];
        *((unsigned char*)m_State+1) = Sbox[*((unsigned char*)m_State+5)];
        *((unsigned char*)m_State+2) = Sbox[*((unsigned char*)m_State+10)];
        *((unsigned char*)m_State+3) = Sbox[*((unsigned char*)m_State+15)];

        *m_State ^= m_Word[r];
        m_State++;
    }
    memcpy(output,State,Nb<<2);
}
//#endif
/*
解密時進行Nr輪逆運算
AES * aes    運行時參數
*/
void AES::invCipher(
    const unsigned char* input,
          unsigned char* output)
{
    unsigned long* m_State = State;
    unsigned long* m_Word  = Word;
    memcpy(m_State, input,Nb<<2);
    unsigned char temp[4];

    int r =0;
    m_Word += Nb*Nr;
    for (r = 0; r < Nb; ++r)
    {
                m_State[r] ^= m_Word[r];
    }

    m_State -= 3;
    for (int round = Nr-1; round > 0; --round)
    {
        /*
        假設Nb=4;

        ---------------------
        |    |    |    |    |
        ---------------------
        |    |    |    |    |
        ---------------------
        |    |    |    |    |
        ---------------------
        | s0 | s1 | s2 | s3 |
        ---------------------
        | s4 | s5 | s6 | s7 |
        ---------------------
        | s8 | s9 | sa | sb |
        ---------------------
        | sc | sd | se | sf |
        ---------------------
        */
        memcpy(m_State,m_State+Nb,12);
        /*
        Nb=4;
        ---------------------
        |    |    |    | s7 |
        ---------------------
        |    |    | sa | sb |
        ---------------------
        |    | sd | se | sf |
        ---------------------
        | s0 | s1 | s2 | s3 |
        ---------------------
        | s4 | s5 | s6 |    |
        ---------------------
        | s8 | s9 |    |    |
        ---------------------
        | sc |    |    |    |
        ---------------------
        */
        m_Word  -= Nb;
        m_State += Nb+2;
        for(r = Nb-1; r >= 0; r--)
        {
            /*
                temp = {iSbox[s0],iSbox[sd],iSbox[sa],iSbox[s7]};
            */
            temp[0] = iSbox[*(unsigned char*)m_State];
            temp[1] = iSbox[*((unsigned char*)m_State-3)];
            temp[2] = iSbox[*((unsigned char*)m_State-6)];
            temp[3] = iSbox[*((unsigned char*)m_State-9)];

            *(unsigned long*)temp ^= m_Word[r];

            *(unsigned char*)m_State     = Log_0e[temp[0]] ^ Log_0b[temp[1]] ^ Log_0d[temp[2]] ^ Log_09[temp[3]];
            *((unsigned char*)m_State+1) = Log_0e[temp[1]] ^ Log_0b[temp[2]] ^ Log_0d[temp[3]] ^ Log_09[temp[0]];
            *((unsigned char*)m_State+2) = Log_0e[temp[2]] ^ Log_0b[temp[3]] ^ Log_0d[temp[0]] ^ Log_09[temp[1]];
            *((unsigned char*)m_State+3) = Log_0e[temp[3]] ^ Log_0b[temp[0]] ^ Log_0d[temp[1]] ^ Log_09[temp[2]];

            m_State --;
        }

        m_State -= 2;
    }

    m_Word -= Nb;
    memcpy(m_State,m_State+Nb,12);

    m_State += Nb+2;
    for(r = Nb-1; r >= 0; r--)
    {
        *(unsigned char*)m_State     = iSbox[*(unsigned char*)m_State];
        *((unsigned char*)m_State+1) = iSbox[*((unsigned char*)m_State-3)];
        *((unsigned char*)m_State+2) = iSbox[*((unsigned char*)m_State-6)];
        *((unsigned char*)m_State+3) = iSbox[*((unsigned char*)m_State-9)];

        *m_State ^= m_Word[r];
         m_State --;
    }
    memcpy(output, State,Nb<<2);
}

/*
*--------------------------------------------
*|k0|k1|k2|k3|k4|k5|k6|k7|k8|k9|.......|Nk*4|
*--------------------------------------------
*Nr輪密鑰庫
*每個密鑰列長度為Nb
*---------------------
*| k0 | k1 | k2 | k3 |
*---------------------
*| k4 | k5 | k6    | k7 |
*---------------------
*| k8 | k9 | ka    | kb |
*---------------------
*| kc |    kd | ke    | kf |
*---------------------
*/
unsigned long* keyExpansion(unsigned char* key, int Nb, int Nr, int Nk)
{
//    printf("9\n");
    unsigned long *w =new unsigned long[Nb * (Nr+1)];  // 4 columns of bytes corresponds to a word

//    printf("a\n");
    memcpy(w,key,Nk<<2);
    unsigned long temp;
//    printf("b\n");
    for (int c = Nk; c < Nb * (Nr+1); ++c)
    {
        //把上一輪的最后一行放入temp
        temp = w[c-1];
        //判斷是不是每一輪密鑰的第一行
        if (c % Nk == 0)
        {
            //左旋8位
            temp = (temp<<8)|(temp>>24);
            //查Sbox表
            SubWord((unsigned char*)&temp);
            temp ^= Rcon[c/Nk];
        }
        else if ( Nk > 6 && (c % Nk == 4) )
        {
            SubWord((unsigned char*)&temp);
        }
        //w[c-Nk] 為上一輪密鑰的第一行
        w[c] = w[c-Nk] ^ temp;
    }
    return w;
}

unsigned char* SubWord(unsigned char* word)
{
    word[0] = Sbox[ word[0] ];
    word[1] = Sbox[ word[1] ];
    word[2] = Sbox[ word[2] ];
    word[3] = Sbox[ word[3] ];
    return word;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线观看不卡| 成人福利在线看| 日韩电影免费在线看| 午夜精品福利一区二区三区av| 一区二区三区免费看视频| 夜夜嗨av一区二区三区网页 | 国产精品盗摄一区二区三区| 欧美激情一区二区在线| 国产精品麻豆视频| 亚洲欧美视频在线观看| 一区二区三区在线免费视频| 亚洲一区二区av电影| 亚欧色一区w666天堂| 人妖欧美一区二区| 激情图片小说一区| 丁香婷婷深情五月亚洲| 99久久伊人网影院| 欧美在线视频全部完| 欧美精品xxxxbbbb| 日韩欧美一区二区久久婷婷| 2021中文字幕一区亚洲| 中文字幕精品一区二区精品绿巨人 | 成人性生交大合| 色综合中文字幕国产 | 亚洲资源中文字幕| 日韩精品成人一区二区三区| 美女精品一区二区| 丰满少妇久久久久久久| 色婷婷久久综合| 欧美精品第一页| 久久这里只有精品6| 综合色中文字幕| 天堂久久一区二区三区| 精品一区二区三区在线播放 | 欧美一区二区视频网站| 久久久久久日产精品| 中文字幕日韩欧美一区二区三区| 一区二区三区四区国产精品| 日韩高清电影一区| 懂色av中文字幕一区二区三区| 在线亚洲一区二区| 日韩午夜精品电影| 亚洲色图另类专区| 喷水一区二区三区| 不卡一区中文字幕| 欧美一区二区三区视频免费播放| 国产亚洲美州欧州综合国| 亚洲免费在线观看| 精品一区二区免费看| 色偷偷一区二区三区| 精品国产乱码久久久久久浪潮| 日韩久久一区二区| 六月婷婷色综合| 色婷婷av一区二区| 欧美精品一区二区精品网| 洋洋av久久久久久久一区| 精品一二三四区| 欧美性xxxxxx少妇| 久久精品视频网| 亚洲成av人**亚洲成av**| 豆国产96在线|亚洲| 日韩视频免费观看高清完整版 | 亚洲日本成人在线观看| 麻豆精品国产传媒mv男同| 色综合久久综合| 久久夜色精品一区| 日韩黄色免费网站| 色94色欧美sute亚洲线路一ni| 久久综合九色综合97_久久久| 亚洲国产三级在线| eeuss鲁片一区二区三区在线观看| 欧美一卡二卡三卡四卡| 亚洲一级二级三级| 91丨porny丨国产入口| 日本一区二区三级电影在线观看 | 亚洲成人动漫在线免费观看| voyeur盗摄精品| 国产三级一区二区三区| 老司机精品视频一区二区三区| 欧美日韩日日骚| 亚洲三级电影网站| 成人免费毛片app| 国产拍欧美日韩视频二区| 精久久久久久久久久久| 欧美蜜桃一区二区三区| 亚洲午夜激情av| 色欧美片视频在线观看| 亚洲日本一区二区三区| av资源站一区| 中文字幕av在线一区二区三区| 国产一区二区调教| 久久亚洲一区二区三区明星换脸| 日韩中文字幕一区二区三区| 欧美日韩一二三| 亚洲mv大片欧洲mv大片精品| 欧美视频完全免费看| 亚洲精品中文字幕在线观看| 成人国产电影网| 国产精品国产三级国产aⅴ中文| 国产91精品露脸国语对白| 久久久国产精华| 国产一区 二区 三区一级| 久久综合九色综合欧美就去吻| 久久99精品视频| 久久综合久久综合久久| 国产美女娇喘av呻吟久久| 久久青草欧美一区二区三区| 国产福利一区二区三区视频在线 | 国产女人18毛片水真多成人如厕| 国产又粗又猛又爽又黄91精品| 久久男人中文字幕资源站| 国产精品99久久久久久有的能看| 久久久久久久久久美女| 国产精品亚洲视频| 国产视频在线观看一区二区三区| 国产.欧美.日韩| 国产精品视频一二三| 91一区二区在线| 一区二区三区欧美| 6080日韩午夜伦伦午夜伦| 美国毛片一区二区三区| 欧美精品一区二区精品网| 成人少妇影院yyyy| 亚洲日本电影在线| 欧美日韩一区二区电影| 免费xxxx性欧美18vr| 久久久一区二区| 成人av手机在线观看| 亚洲国产精品麻豆| 精品国产乱码91久久久久久网站| 高清视频一区二区| 洋洋av久久久久久久一区| 欧美一二三四在线| 国产另类ts人妖一区二区| 亚洲色图视频免费播放| 欧美精品1区2区3区| 韩国精品主播一区二区在线观看| 国产精品日日摸夜夜摸av| 精品视频999| 国产一区激情在线| 亚洲一区在线视频观看| 精品日韩一区二区三区免费视频| 不卡电影免费在线播放一区| 午夜精品福利一区二区三区蜜桃| 久久久亚洲精品一区二区三区| 99re8在线精品视频免费播放| 亚洲成人激情av| 日本一区二区三区四区在线视频 | 在线视频你懂得一区| 麻豆91小视频| 亚洲视频1区2区| 日韩欧美卡一卡二| 色婷婷精品久久二区二区蜜臀av| 蜜芽一区二区三区| 中文字幕日韩欧美一区二区三区| 欧美一级夜夜爽| 99久久综合精品| 精品一区二区在线免费观看| 亚洲最大成人网4388xx| 久久综合av免费| 欧美日韩高清在线播放| 成人一区二区三区在线观看| 秋霞电影网一区二区| 亚洲欧美区自拍先锋| 亚洲精品一区二区三区四区高清 | 亚洲男人的天堂一区二区| 精品国产区一区| 欧美三级日韩三级| 不卡影院免费观看| 国产一区二区三区视频在线播放| 亚洲国产精品久久一线不卡| 国产精品久久久一区麻豆最新章节| 91精品国产综合久久婷婷香蕉| 91麻豆精品视频| 国产成人av一区| 美女视频网站黄色亚洲| 一区二区三区视频在线看| 日本一区二区三区高清不卡| 日韩一区二区三区视频在线| 欧洲在线/亚洲| 99麻豆久久久国产精品免费优播| 国产麻豆成人精品| 麻豆91精品视频| 亚洲r级在线视频| 亚洲专区一二三| 亚洲欧美日韩小说| 国产精品久久久久久亚洲伦| 久久婷婷色综合| 欧美大片在线观看| 欧美一区二区网站| 777奇米成人网| 欧美日本一区二区| 欧美日韩一卡二卡| 欧美视频日韩视频在线观看| 在线免费观看不卡av| 99久久精品国产毛片| 972aa.com艺术欧美| 91网站最新网址| 成人国产精品视频| 成人av网站在线观看|