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

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

?? aesengine.java

?? 內容:基于jdk1.4的加密算法的具體實現
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
        int         KC = key.length / 4;  // key length in words        int         t;                if (((KC != 4) && (KC != 6) && (KC != 8)) || ((KC * 4) != key.length))        {            throw new IllegalArgumentException("Key length not 128/192/256 bits.");        }        ROUNDS = KC + 6;  // This is not always true for the generalized Rijndael that allows larger block sizes        int[][] W = new int[ROUNDS+1][4];   // 4 words in a block                //        // copy the key into the round key array        //                t = 0;        int i = 0;        while (i < key.length)            {                W[t >> 2][t & 3] = (key[i]&0xff) | ((key[i+1]&0xff) << 8) | ((key[i+2]&0xff) << 16) | (key[i+3] << 24);                i+=4;                t++;            }                //        // while not enough round key material calculated        // calculate new values        //        int k = (ROUNDS + 1) << 2;        for (i = KC; (i < k); i++)            {                int temp = W[(i-1)>>2][(i-1)&3];                if ((i % KC) == 0)                {                    temp = subWord(shift(temp, 8)) ^ rcon[(i / KC)-1];                }                else if ((KC > 6) && ((i % KC) == 4))                {                    temp = subWord(temp);                }                                W[i>>2][i&3] = W[(i - KC)>>2][(i-KC)&3] ^ temp;            }        if (!forEncryption)        {            for (int j = 1; j < ROUNDS; j++)            {                for (i = 0; i < 4; i++)                {                    W[j][i] = inv_mcol(W[j][i]);                }            }        }        return W;    }    private int         ROUNDS;    private int[][]     WorkingKey = null;    private int         C0, C1, C2, C3;    private boolean     forEncryption;    private static final int BLOCK_SIZE = 16;    /**     * default constructor - 128 bit block size.     */    public AESEngine()    {    }    /**     * initialise an AES cipher.     *     * @param forEncryption whether or not we are for encryption.     * @param params the parameters required to set up the cipher.     * @exception IllegalArgumentException if the params argument is     * inappropriate.     */    public void init(        boolean           forEncryption,        CipherParameters  params)    {        if (params instanceof KeyParameter)        {            WorkingKey = generateWorkingKey(((KeyParameter)params).getKey(), forEncryption);            this.forEncryption = forEncryption;            return;        }        throw new IllegalArgumentException("invalid parameter passed to AES init - " + params.getClass().getName());    }    public String getAlgorithmName()    {        return "AES";    }    public int getBlockSize()    {        return BLOCK_SIZE;    }    public int processBlock(        byte[] in,        int inOff,        byte[] out,        int outOff)    {        if (WorkingKey == null)        {            throw new IllegalStateException("AES engine not initialised");        }        if ((inOff + (32 / 2)) > in.length)        {            throw new DataLengthException("input buffer too short");        }        if ((outOff + (32 / 2)) > out.length)        {            throw new DataLengthException("output buffer too short");        }        if (forEncryption)        {            unpackBlock(in, inOff);            encryptBlock(WorkingKey);            packBlock(out, outOff);        }        else        {            unpackBlock(in, inOff);            decryptBlock(WorkingKey);            packBlock(out, outOff);        }        return BLOCK_SIZE;    }    public void reset()    {    }    private final void unpackBlock(        byte[]      bytes,        int         off)    {        int     index = off;        C0 = (bytes[index++] & 0xff);        C0 |= (bytes[index++] & 0xff) << 8;        C0 |= (bytes[index++] & 0xff) << 16;        C0 |= bytes[index++] << 24;        C1 = (bytes[index++] & 0xff);        C1 |= (bytes[index++] & 0xff) << 8;        C1 |= (bytes[index++] & 0xff) << 16;        C1 |= bytes[index++] << 24;        C2 = (bytes[index++] & 0xff);        C2 |= (bytes[index++] & 0xff) << 8;        C2 |= (bytes[index++] & 0xff) << 16;        C2 |= bytes[index++] << 24;        C3 = (bytes[index++] & 0xff);        C3 |= (bytes[index++] & 0xff) << 8;        C3 |= (bytes[index++] & 0xff) << 16;        C3 |= bytes[index++] << 24;    }    private final void packBlock(        byte[]      bytes,        int         off)    {        int     index = off;        bytes[index++] = (byte)C0;        bytes[index++] = (byte)(C0 >> 8);        bytes[index++] = (byte)(C0 >> 16);        bytes[index++] = (byte)(C0 >> 24);        bytes[index++] = (byte)C1;        bytes[index++] = (byte)(C1 >> 8);        bytes[index++] = (byte)(C1 >> 16);        bytes[index++] = (byte)(C1 >> 24);        bytes[index++] = (byte)C2;        bytes[index++] = (byte)(C2 >> 8);        bytes[index++] = (byte)(C2 >> 16);        bytes[index++] = (byte)(C2 >> 24);        bytes[index++] = (byte)C3;        bytes[index++] = (byte)(C3 >> 8);        bytes[index++] = (byte)(C3 >> 16);        bytes[index++] = (byte)(C3 >> 24);    }    private final void encryptBlock(int[][] KW)    {        int r, r0, r1, r2, r3;        C0 ^= KW[0][0];        C1 ^= KW[0][1];        C2 ^= KW[0][2];        C3 ^= KW[0][3];        r = 1;        while (r < ROUNDS - 1)        {            r0 = T0[C0&255] ^ shift(T0[(C1>>8)&255], 24) ^ shift(T0[(C2>>16)&255],16) ^ shift(T0[(C3>>24)&255],8) ^ KW[r][0];            r1 = T0[C1&255] ^ shift(T0[(C2>>8)&255], 24) ^ shift(T0[(C3>>16)&255], 16) ^ shift(T0[(C0>>24)&255], 8) ^ KW[r][1];            r2 = T0[C2&255] ^ shift(T0[(C3>>8)&255], 24) ^ shift(T0[(C0>>16)&255], 16) ^ shift(T0[(C1>>24)&255], 8) ^ KW[r][2];            r3 = T0[C3&255] ^ shift(T0[(C0>>8)&255], 24) ^ shift(T0[(C1>>16)&255], 16) ^ shift(T0[(C2>>24)&255], 8) ^ KW[r++][3];            C0 = T0[r0&255] ^ shift(T0[(r1>>8)&255], 24) ^ shift(T0[(r2>>16)&255], 16) ^ shift(T0[(r3>>24)&255], 8) ^ KW[r][0];            C1 = T0[r1&255] ^ shift(T0[(r2>>8)&255], 24) ^ shift(T0[(r3>>16)&255], 16) ^ shift(T0[(r0>>24)&255], 8) ^ KW[r][1];            C2 = T0[r2&255] ^ shift(T0[(r3>>8)&255], 24) ^ shift(T0[(r0>>16)&255], 16) ^ shift(T0[(r1>>24)&255], 8) ^ KW[r][2];            C3 = T0[r3&255] ^ shift(T0[(r0>>8)&255], 24) ^ shift(T0[(r1>>16)&255], 16) ^ shift(T0[(r2>>24)&255], 8) ^ KW[r++][3];        }        r0 = T0[C0&255] ^ shift(T0[(C1>>8)&255], 24) ^ shift(T0[(C2>>16)&255], 16) ^ shift(T0[(C3>>24)&255], 8) ^ KW[r][0];        r1 = T0[C1&255] ^ shift(T0[(C2>>8)&255], 24) ^ shift(T0[(C3>>16)&255], 16) ^ shift(T0[(C0>>24)&255], 8) ^ KW[r][1];        r2 = T0[C2&255] ^ shift(T0[(C3>>8)&255], 24) ^ shift(T0[(C0>>16)&255], 16) ^ shift(T0[(C1>>24)&255], 8) ^ KW[r][2];        r3 = T0[C3&255] ^ shift(T0[(C0>>8)&255], 24) ^ shift(T0[(C1>>16)&255], 16) ^ shift(T0[(C2>>24)&255], 8) ^ KW[r++][3];        // the final round's table is a simple function of S so we don't use a whole other four tables for it        C0 = (S[r0&255]&255) ^ ((S[(r1>>8)&255]&255)<<8) ^ ((S[(r2>>16)&255]&255)<<16) ^ (S[(r3>>24)&255]<<24) ^ KW[r][0];        C1 = (S[r1&255]&255) ^ ((S[(r2>>8)&255]&255)<<8) ^ ((S[(r3>>16)&255]&255)<<16) ^ (S[(r0>>24)&255]<<24) ^ KW[r][1];        C2 = (S[r2&255]&255) ^ ((S[(r3>>8)&255]&255)<<8) ^ ((S[(r0>>16)&255]&255)<<16) ^ (S[(r1>>24)&255]<<24) ^ KW[r][2];        C3 = (S[r3&255]&255) ^ ((S[(r0>>8)&255]&255)<<8) ^ ((S[(r1>>16)&255]&255)<<16) ^ (S[(r2>>24)&255]<<24) ^ KW[r][3];    }    private final void decryptBlock(int[][] KW)    {        int r, r0, r1, r2, r3;        C0 ^= KW[ROUNDS][0];        C1 ^= KW[ROUNDS][1];        C2 ^= KW[ROUNDS][2];        C3 ^= KW[ROUNDS][3];        r = ROUNDS-1;        while (r>1)        {            r0 = Tinv0[C0&255] ^ shift(Tinv0[(C3>>8)&255], 24) ^ shift(Tinv0[(C2>>16)&255], 16) ^ shift(Tinv0[(C1>>24)&255], 8) ^ KW[r][0];            r1 = Tinv0[C1&255] ^ shift(Tinv0[(C0>>8)&255], 24) ^ shift(Tinv0[(C3>>16)&255], 16) ^ shift(Tinv0[(C2>>24)&255], 8) ^ KW[r][1];            r2 = Tinv0[C2&255] ^ shift(Tinv0[(C1>>8)&255], 24) ^ shift(Tinv0[(C0>>16)&255], 16) ^ shift(Tinv0[(C3>>24)&255], 8) ^ KW[r][2];            r3 = Tinv0[C3&255] ^ shift(Tinv0[(C2>>8)&255], 24) ^ shift(Tinv0[(C1>>16)&255], 16) ^ shift(Tinv0[(C0>>24)&255], 8) ^ KW[r--][3];            C0 = Tinv0[r0&255] ^ shift(Tinv0[(r3>>8)&255], 24) ^ shift(Tinv0[(r2>>16)&255], 16) ^ shift(Tinv0[(r1>>24)&255], 8) ^ KW[r][0];            C1 = Tinv0[r1&255] ^ shift(Tinv0[(r0>>8)&255], 24) ^ shift(Tinv0[(r3>>16)&255], 16) ^ shift(Tinv0[(r2>>24)&255], 8) ^ KW[r][1];            C2 = Tinv0[r2&255] ^ shift(Tinv0[(r1>>8)&255], 24) ^ shift(Tinv0[(r0>>16)&255], 16) ^ shift(Tinv0[(r3>>24)&255], 8) ^ KW[r][2];            C3 = Tinv0[r3&255] ^ shift(Tinv0[(r2>>8)&255], 24) ^ shift(Tinv0[(r1>>16)&255], 16) ^ shift(Tinv0[(r0>>24)&255], 8) ^ KW[r--][3];        }        r0 = Tinv0[C0&255] ^ shift(Tinv0[(C3>>8)&255], 24) ^ shift(Tinv0[(C2>>16)&255], 16) ^ shift(Tinv0[(C1>>24)&255], 8) ^ KW[r][0];        r1 = Tinv0[C1&255] ^ shift(Tinv0[(C0>>8)&255], 24) ^ shift(Tinv0[(C3>>16)&255], 16) ^ shift(Tinv0[(C2>>24)&255], 8) ^ KW[r][1];        r2 = Tinv0[C2&255] ^ shift(Tinv0[(C1>>8)&255], 24) ^ shift(Tinv0[(C0>>16)&255], 16) ^ shift(Tinv0[(C3>>24)&255], 8) ^ KW[r][2];        r3 = Tinv0[C3&255] ^ shift(Tinv0[(C2>>8)&255], 24) ^ shift(Tinv0[(C1>>16)&255], 16) ^ shift(Tinv0[(C0>>24)&255], 8) ^ KW[r--][3];                // the final round's table is a simple function of Si so we don't use a whole other four tables for it        C0 = (Si[r0&255]&255) ^ ((Si[(r3>>8)&255]&255)<<8) ^ ((Si[(r2>>16)&255]&255)<<16) ^ (Si[(r1>>24)&255]<<24) ^ KW[0][0];        C1 = (Si[r1&255]&255) ^ ((Si[(r0>>8)&255]&255)<<8) ^ ((Si[(r3>>16)&255]&255)<<16) ^ (Si[(r2>>24)&255]<<24) ^ KW[0][1];        C2 = (Si[r2&255]&255) ^ ((Si[(r1>>8)&255]&255)<<8) ^ ((Si[(r0>>16)&255]&255)<<16) ^ (Si[(r3>>24)&255]<<24) ^ KW[0][2];        C3 = (Si[r3&255]&255) ^ ((Si[(r2>>8)&255]&255)<<8) ^ ((Si[(r1>>16)&255]&255)<<16) ^ (Si[(r0>>24)&255]<<24) ^ KW[0][3];    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美va亚洲va在线观看蝴蝶网| 国产精品自拍三区| 欧美日韩一区不卡| 午夜激情一区二区| 日韩精品一区二区三区蜜臀| 日韩国产精品91| 日韩免费视频一区二区| 国产一区二区三区日韩| 国产精品女主播在线观看| 97精品电影院| 亚洲成人av在线电影| 日韩一区二区电影| 国产成a人亚洲精| 一区二区三区国产豹纹内裤在线| 色偷偷成人一区二区三区91| 亚洲高清免费观看 | 国产传媒日韩欧美成人| 国产精品色哟哟网站| 日本黄色一区二区| 蜜桃视频一区二区| 一区在线播放视频| 欧美日韩成人一区| 国产精品亚洲а∨天堂免在线| 亚洲免费av在线| 精品久久久久一区| 91女厕偷拍女厕偷拍高清| 午夜精品福利视频网站| 欧美韩国一区二区| 欧美日韩国产一级| 成人国产精品免费观看视频| 亚洲成人激情av| 亚洲国产激情av| 欧美精品九九99久久| 国产精品88av| 天堂在线一区二区| 中文字幕av一区 二区| 欧美猛男男办公室激情| 国产99精品国产| 天堂成人国产精品一区| 亚洲欧洲精品成人久久奇米网| 91精品福利在线一区二区三区| eeuss影院一区二区三区| 日本大胆欧美人术艺术动态| 亚洲欧美电影院| 久久精品一二三| 欧美一区中文字幕| 在线看国产日韩| caoporm超碰国产精品| 激情六月婷婷久久| 午夜精品一区二区三区三上悠亚| 国产精品激情偷乱一区二区∴| 日韩一二三四区| 欧美少妇bbb| 色狠狠桃花综合| 播五月开心婷婷综合| 国产一区福利在线| 麻豆成人久久精品二区三区红| 亚洲精品免费播放| 亚洲视频你懂的| 国产精品剧情在线亚洲| 久久精品夜色噜噜亚洲a∨| 日韩一级二级三级精品视频| 欧美性猛交xxxx乱大交退制版| av不卡一区二区三区| 丁香激情综合国产| 国产盗摄精品一区二区三区在线 | 亚洲国产成人私人影院tom| 欧美疯狂做受xxxx富婆| 日本韩国一区二区三区视频| 97se亚洲国产综合自在线观| 国产传媒欧美日韩成人| 狠狠v欧美v日韩v亚洲ⅴ| 蜜臀va亚洲va欧美va天堂| 日本女优在线视频一区二区| 亚洲电影第三页| 五月婷婷综合网| 日韩黄色小视频| 青青草91视频| 理论电影国产精品| 精品一区二区三区视频在线观看| 日韩av一级片| 麻豆国产精品一区二区三区| 豆国产96在线|亚洲| av电影在线观看不卡 | 在线观看91精品国产入口| 色偷偷88欧美精品久久久| 色悠悠亚洲一区二区| 一本到不卡精品视频在线观看| 91黄色免费看| 欧美日韩小视频| 日韩一级在线观看| 久久久久久免费| 亚洲视频在线一区| 亚洲电影激情视频网站| 日韩高清一级片| 国产精品一卡二卡在线观看| 国产经典欧美精品| 91免费观看在线| 欧美精品久久99久久在免费线| 欧美一级高清大全免费观看| 久久久久久日产精品| 成人免费在线播放视频| 亚洲国产日韩精品| 久久超碰97人人做人人爱| 成人午夜碰碰视频| 欧美日韩一区二区在线视频| 欧美成人aa大片| 国产精品久久久久久户外露出| 亚洲国产精品尤物yw在线观看| 蜜桃在线一区二区三区| 成人午夜av电影| 欧美精品777| 中文字幕免费不卡| 日韩精品一二三四| 成人网男人的天堂| 69p69国产精品| 国产精品丝袜久久久久久app| 亚洲一级片在线观看| 国产一区二区三区综合| 色综合色狠狠天天综合色| 日韩一区二区三区四区| 中文字幕一区在线观看视频| 日韩中文字幕91| 91蜜桃在线免费视频| 精品国产一区a| 亚洲精品国产a| 国产精品白丝jk白祙喷水网站| 欧美色倩网站大全免费| 国产精品每日更新| 美女尤物国产一区| 欧美在线免费观看视频| 久久久久久久久伊人| 五月天婷婷综合| 9i看片成人免费高清| 久久综合九色综合97_久久久| 夜夜夜精品看看| 成人av第一页| 久久精品人人做人人综合| 日韩电影一二三区| 欧美伊人精品成人久久综合97| 久久久久99精品国产片| 蜜桃视频在线观看一区| 欧美色网一区二区| 亚洲人成影院在线观看| 福利电影一区二区三区| 欧美一卡二卡三卡四卡| 亚洲午夜在线视频| 一本到三区不卡视频| 国产精品国产精品国产专区不蜜| 国内不卡的二区三区中文字幕| 精品视频全国免费看| 亚洲综合成人网| 91猫先生在线| 成人免费一区二区三区视频| 国产麻豆91精品| 久久久久久免费网| 精品一区二区三区在线观看 | 久久亚洲捆绑美女| 美女网站在线免费欧美精品| 在线不卡中文字幕播放| 亚洲一区二区综合| 欧美日韩一级视频| 亚洲资源中文字幕| 欧美日韩一区国产| 首页国产欧美久久| 正在播放一区二区| 免费观看在线色综合| 欧美一级xxx| 久久www免费人成看片高清| 欧美电影免费观看完整版| 另类中文字幕网| 久久只精品国产| 国产精华液一区二区三区| 国产女人aaa级久久久级| 国产成人高清视频| 亚洲人成精品久久久久久 | 成人午夜在线免费| 国产精品久久久久久久久久免费看| 成人免费看视频| 中文字幕一区二区不卡| 色综合久久综合中文综合网| 亚洲影院理伦片| 91精品国产综合久久久久久漫画| 免费看欧美女人艹b| 精品免费国产二区三区| 国产激情一区二区三区四区| 国产精品久久影院| 在线观看不卡视频| 日本欧美在线看| 国产日韩视频一区二区三区| 91啪亚洲精品| 日韩黄色免费电影| 日本一区二区综合亚洲| 99精品欧美一区| 日韩精品五月天| 久久久亚洲欧洲日产国码αv| av一本久道久久综合久久鬼色| 亚洲高清免费在线| 久久综合久久鬼色中文字| 91麻豆国产精品久久|