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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rijndael.java

?? jpeg2000編解碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* $Id: Rijndael.java,v 1.1.1.1 2002/08/27 12:32:09 grosbois Exp $ * * This file is in the public domain. */package cryptix.provider.cipher;// Cryptix 3.x specific importsimport xjava.security.Cipher;import xjava.security.SymmetricCipher;// General JCA importsimport java.security.Key;import java.security.KeyException;import java.security.InvalidKeyException;/** * Rijndael --pronounced Reindaal-- is a symmetric cipher with a 128-bit * block size and variable key-size (128-, 192- and 256-bit). * <p> * Rijndael was designed by <a href="mailto:rijmen@esat.kuleuven.ac.be">Vincent * Rijmen</a> and <a href="mailto:daemen.j@protonworld.com">Joan Daemen</a>. * <p> * @version $Revision: 1.1.1.1 $ * @author  Raif S. Naffah * @author  Paulo S. L. M. Barreto (pbarreto@cryptix.org) * @author  Jeroen C. van Gelderen (gelderen@cryptix.org) * @author  Edwin Woudt            (edwin@cryptix.org) * @since   Cryptix 3.1.3/3.2.0 */public final class Rijndael extends Cipher implements SymmetricCipher {    private boolean         ROUNDS_12,        ROUNDS_14;    /** True if in decrypt mode */    private boolean decrypt;    /** Subkeys */    private int[] K;    /** (ROUNDS-1) * 4 */    private int limit;    public Rijndael() {        super(false, false, "Cryptix");    }    protected void coreInit(Key key, boolean decrypt)    throws InvalidKeyException    {        if( key==null )            throw new InvalidKeyException("Key missing");        if( !key.getFormat().equalsIgnoreCase("RAW") )            throw new InvalidKeyException("Wrong format: RAW bytes needed");        byte[] userkey = key.getEncoded();        if(userkey == null)            throw new InvalidKeyException("RAW bytes missing");        int len = userkey.length ;        if( len != 16 && len != 24 && len!=32 )            throw new InvalidKeyException("Invalid user key length");        this.decrypt = decrypt;        this.K = makeKey(userkey, decrypt);        if(decrypt) invertKey(this.K);        ROUNDS_12 = (len >= 24);        ROUNDS_14 = (len == 32);        this.limit=getRounds(len)*4;    }// Cryptix 3.x Cipher SPI methods//...........................................................................    protected void engineInitEncrypt(Key key) throws KeyException {        coreInit(key, false);    }    protected void engineInitDecrypt(Key key) throws KeyException {        coreInit(key, true);    }    protected int engineUpdate(byte[] in, int inOffset, int inLen,                                byte[] out, int outOffset) {        int size = inLen;        if( decrypt ) {            while (inLen > 0) {                blockDecrypt(in, inOffset, out, outOffset);                inOffset  += BLOCK_SIZE;                outOffset += BLOCK_SIZE;                inLen     -= BLOCK_SIZE;            }        } else {            while (inLen > 0) {                blockEncrypt(in, inOffset, out, outOffset);                inOffset  += BLOCK_SIZE;                outOffset += BLOCK_SIZE;                inLen     -= BLOCK_SIZE;            }        }        return size;    }    protected int engineBlockSize() {        return BLOCK_SIZE;    }        // Constants and variables//...........................................................................    private static final int BLOCK_SIZE = 16; // block size in bytes    private static final String SS =        "\u637C\u777B\uF26B\u6FC5\u3001\u672B\uFED7\uAB76" +        "\uCA82\uC97D\uFA59\u47F0\uADD4\uA2AF\u9CA4\u72C0" +        "\uB7FD\u9326\u363F\uF7CC\u34A5\uE5F1\u71D8\u3115" +        "\u04C7\u23C3\u1896\u059A\u0712\u80E2\uEB27\uB275" +        "\u0983\u2C1A\u1B6E\u5AA0\u523B\uD6B3\u29E3\u2F84" +        "\u53D1\u00ED\u20FC\uB15B\u6ACB\uBE39\u4A4C\u58CF" +        "\uD0EF\uAAFB\u434D\u3385\u45F9\u027F\u503C\u9FA8" +        "\u51A3\u408F\u929D\u38F5\uBCB6\uDA21\u10FF\uF3D2" +        "\uCD0C\u13EC\u5F97\u4417\uC4A7\u7E3D\u645D\u1973" +        "\u6081\u4FDC\u222A\u9088\u46EE\uB814\uDE5E\u0BDB" +        "\uE032\u3A0A\u4906\u245C\uC2D3\uAC62\u9195\uE479" +        "\uE7C8\u376D\u8DD5\u4EA9\u6C56\uF4EA\u657A\uAE08" +        "\uBA78\u252E\u1CA6\uB4C6\uE8DD\u741F\u4BBD\u8B8A" +        "\u703E\uB566\u4803\uF60E\u6135\u57B9\u86C1\u1D9E" +        "\uE1F8\u9811\u69D9\u8E94\u9B1E\u87E9\uCE55\u28DF" +        "\u8CA1\u890D\uBFE6\u4268\u4199\u2D0F\uB054\uBB16";    private static final byte[]        S  = new byte[256],        Si = new byte[256];    private static final int[]        T1 = new int[256],        T2 = new int[256],        T3 = new int[256],        T4 = new int[256],        T5 = new int[256],        T6 = new int[256],        T7 = new int[256],        T8 = new int[256];    private static final int[]        U1 = new int[256],        U2 = new int[256],        U3 = new int[256],        U4 = new int[256];    private static final byte[] rcon = new byte[30];// Static code - to intialise S-boxes and T-boxes//...........................................................................    static {        int ROOT = 0x11B;        int i, j = 0;        for (i = 0; i < 256; i++) {            int s, s2, s3, i2, i4, i8, i9, ib, id, ie, t;            char c = SS.charAt(i >>> 1);            S[i] = (byte)(((i & 1) == 0) ? c >>> 8 : c & 0xFF);            s = S[i] & 0xFF;            Si[s] = (byte)i;            s2 = s << 1;            if (s2 >= 0x100) {                s2 ^= ROOT;            }            s3 = s2 ^ s;            i2 = i << 1;            if (i2 >= 0x100) {                i2 ^= ROOT;            }            i4 = i2 << 1;            if (i4 >= 0x100) {                i4 ^= ROOT;            }            i8 = i4 << 1;            if (i8 >= 0x100) {                i8 ^= ROOT;            }            i9 = i8 ^ i;            ib = i9 ^ i2;            id = i9 ^ i4;            ie = i8 ^ i4 ^ i2;            T1[i] = t = (s2 << 24) | (s << 16) | (s << 8) | s3;            T2[i] = (t >>>  8) | (t << 24);            T3[i] = (t >>> 16) | (t << 16);            T4[i] = (t >>> 24) | (t <<  8);            T5[s] = U1[i] = t = (ie << 24) | (i9 << 16) | (id << 8) | ib;            T6[s] = U2[i] = (t >>>  8) | (t << 24);            T7[s] = U3[i] = (t >>> 16) | (t << 16);            T8[s] = U4[i] = (t >>> 24) | (t <<  8);        }        //        // round constants        //        int r = 1;        rcon[0] = 1;        for (i = 1; i < 30; i++) {            r <<= 1;            if (r >= 0x100) {                r ^= ROOT;            }            rcon[i] = (byte)r;        }    }//...........................................................................    /**     * Encrypt exactly one block of plaintext.     */    private void blockEncrypt(byte[] in, int inOffset,                               byte[] out, int outOffset)     {        // plaintext to ints + key        int keyOffset = 0;        int t0   = ((in[inOffset++]       ) << 24 |                    (in[inOffset++] & 0xFF) << 16 |                    (in[inOffset++] & 0xFF) <<  8 |                    (in[inOffset++] & 0xFF)        ) ^ K[keyOffset++];        int t1   = ((in[inOffset++]       ) << 24 |                    (in[inOffset++] & 0xFF) << 16 |                    (in[inOffset++] & 0xFF) <<  8 |                    (in[inOffset++] & 0xFF)        ) ^ K[keyOffset++];        int t2   = ((in[inOffset++]       ) << 24 |                    (in[inOffset++] & 0xFF) << 16 |                    (in[inOffset++] & 0xFF) <<  8 |                    (in[inOffset++] & 0xFF)        ) ^ K[keyOffset++];        int t3   = ((in[inOffset++]       ) << 24 |                    (in[inOffset++] & 0xFF) << 16 |                    (in[inOffset++] & 0xFF) <<  8 |                    (in[inOffset++] & 0xFF)        ) ^ K[keyOffset++];        // apply round transforms        while( keyOffset < limit ) {            int a0, a1, a2;            a0 = T1[(t0 >>> 24)       ] ^                 T2[(t1 >>> 16) & 0xFF] ^                 T3[(t2 >>>  8) & 0xFF] ^                 T4[(t3       ) & 0xFF] ^ K[keyOffset++];            a1 = T1[(t1 >>> 24)       ] ^                 T2[(t2 >>> 16) & 0xFF] ^                 T3[(t3 >>>  8) & 0xFF] ^                 T4[(t0       ) & 0xFF] ^ K[keyOffset++];            a2 = T1[(t2 >>> 24)       ] ^                 T2[(t3 >>> 16) & 0xFF] ^                 T3[(t0 >>>  8) & 0xFF] ^                 T4[(t1       ) & 0xFF] ^ K[keyOffset++];            t3 = T1[(t3 >>> 24)       ] ^                 T2[(t0 >>> 16) & 0xFF] ^                 T3[(t1 >>>  8) & 0xFF] ^                 T4[(t2       ) & 0xFF] ^ K[keyOffset++];            t0 = a0; t1 = a1; t2 = a2;        }        // last round is special        int tt = K[keyOffset++];        out[outOffset++] = (byte)(S[(t0 >>> 24)       ] ^ (tt >>> 24));        out[outOffset++] = (byte)(S[(t1 >>> 16) & 0xFF] ^ (tt >>> 16));        out[outOffset++] = (byte)(S[(t2 >>>  8) & 0xFF] ^ (tt >>>  8));        out[outOffset++] = (byte)(S[(t3       ) & 0xFF] ^ (tt       ));        tt = K[keyOffset++];        out[outOffset++] = (byte)(S[(t1 >>> 24)       ] ^ (tt >>> 24));        out[outOffset++] = (byte)(S[(t2 >>> 16) & 0xFF] ^ (tt >>> 16));        out[outOffset++] = (byte)(S[(t3 >>>  8) & 0xFF] ^ (tt >>>  8));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一卡二卡| 国产99久久久国产精品潘金| 在线免费亚洲电影| 亚洲一区二区三区四区中文字幕| 欧美日韩和欧美的一区二区| 亚洲在线视频网站| 欧美日本一道本| 香蕉久久夜色精品国产使用方法 | 欧美一区二区三区视频在线观看| 日韩精品一区在线观看| 国内成+人亚洲+欧美+综合在线| 91视频免费播放| 一区二区三区在线播| 欧美日韩亚洲综合在线| 日韩一区精品视频| 久久久久久久综合狠狠综合| caoporm超碰国产精品| 一区二区三区.www| 26uuu国产一区二区三区 | 日精品一区二区| 日韩欧美国产午夜精品| 成人免费黄色大片| 舔着乳尖日韩一区| 久久久久久久久久久电影| 色综合视频一区二区三区高清| 国产亚洲精品aa| 欧美日韩精品系列| 国产成人免费在线观看| 亚洲一区二区三区四区不卡| 精品久久久久久久人人人人传媒| 偷拍一区二区三区四区| 久久九九影视网| 欧美日韩亚洲另类| 99热精品国产| 久久精品99国产精品日本| 国产精品久久看| 日韩欧美国产一区在线观看| 91黄色激情网站| 国产精品一区2区| 日韩高清一区在线| 亚洲精品免费视频| 国产精品美女一区二区三区| 91精品国产综合久久精品app| 亚洲第一福利一区| 国产精品久久久久一区二区三区| 国产成人精品一区二区三区四区| 精品久久五月天| 欧美午夜电影一区| www.日韩在线| 国产精品一区二区三区网站| 一区二区高清在线| 国产精品国产三级国产aⅴ入口 | 国产suv一区二区三区88区| 亚洲制服欧美中文字幕中文字幕| 欧美日韩二区三区| 在线中文字幕不卡| 99久久99久久综合| 成人污视频在线观看| 久久疯狂做爰流白浆xx| 亚洲成人高清在线| 亚洲影院免费观看| 亚洲男人的天堂av| 国产精品高潮呻吟久久| 国产欧美日韩在线视频| 精品国产精品网麻豆系列| 日韩欧美中文字幕制服| 欧美一级生活片| 717成人午夜免费福利电影| 欧美日韩国产成人在线91| 欧美日韩在线亚洲一区蜜芽| 欧美色网站导航| 欧美人与性动xxxx| 欧美日韩一区中文字幕| 欧美日韩另类一区| 欧美一级搡bbbb搡bbbb| 欧美不卡一二三| 久久色在线视频| 国产亚洲成年网址在线观看| 久久久精品一品道一区| 国产精品视频一二三区| 中文字幕视频一区| 亚洲人成网站色在线观看| 一区二区三区日韩欧美| 午夜久久久久久久久| 玖玖九九国产精品| 国产美女精品在线| 成人蜜臀av电影| 色婷婷国产精品| 欧美日韩国产美女| 亚洲精品在线观看视频| 国产欧美视频一区二区三区| 成人欧美一区二区三区白人| 亚洲精品大片www| 白白色亚洲国产精品| 一道本成人在线| 91精品欧美久久久久久动漫 | 欧美性videosxxxxx| 欧美日韩亚洲丝袜制服| 欧美本精品男人aⅴ天堂| www激情久久| 国产精品乱码久久久久久| 亚洲精品中文在线影院| 青娱乐精品视频在线| 成人免费观看男女羞羞视频| 色系网站成人免费| 欧美一级搡bbbb搡bbbb| 中文字幕久久午夜不卡| 亚洲一卡二卡三卡四卡无卡久久| 国产精品毛片久久久久久久| 亚洲激情中文1区| 老司机精品视频在线| 高清不卡一区二区在线| 欧美日韩色综合| 久久欧美一区二区| 亚洲成人你懂的| 国产成人午夜精品影院观看视频| 老司机午夜精品99久久| 99这里都是精品| 日韩一卡二卡三卡四卡| 亚洲欧美电影一区二区| 激情六月婷婷综合| 91黄视频在线| 中文av一区特黄| 麻豆高清免费国产一区| 在线视频亚洲一区| 欧美国产日本韩| 精品一区精品二区高清| 欧美在线视频你懂得| 中文字幕精品—区二区四季| 视频一区二区三区中文字幕| 国产成人午夜精品5599| 日韩欧美高清一区| 亚洲国产另类av| 99精品欧美一区二区三区小说| 91一区一区三区| 精品国产乱码久久久久久老虎 | 处破女av一区二区| 日韩视频永久免费| 亚洲一区二区三区四区在线观看 | 理论电影国产精品| 在线观看日产精品| 国产亚洲精品7777| 久久狠狠亚洲综合| 欧美一卡二卡三卡四卡| 亚洲大片免费看| 欧美影片第一页| 亚洲欧美成人一区二区三区| 成人国产一区二区三区精品| 久久久不卡影院| 国产在线精品一区在线观看麻豆| 国产成人精品免费网站| 精品国产亚洲一区二区三区在线观看| 日韩精品一区二区三区中文不卡| 日韩女同互慰一区二区| 亚洲va国产va欧美va观看| 91久久精品网| 亚洲狠狠丁香婷婷综合久久久| 午夜精彩视频在线观看不卡| 91免费国产在线观看| 亚洲人成精品久久久久久| 国产成人在线视频网址| 国产午夜精品久久久久久免费视| 亚洲精品乱码久久久久久日本蜜臀| 香蕉加勒比综合久久| 欧美精品久久久久久久多人混战| 日韩视频一区在线观看| 久久电影网站中文字幕| 久久一二三国产| 国产露脸91国语对白| 中文字幕精品三区| 99国产一区二区三精品乱码| **网站欧美大片在线观看| 日本电影欧美片| 亚洲一二三四区| 欧美高清性hdvideosex| 麻豆视频观看网址久久| 精品蜜桃在线看| 国产成人免费网站| 国产精品久久久久久亚洲伦| 91丨九色porny丨蝌蚪| 亚洲在线视频免费观看| 欧美一区二区人人喊爽| 狠狠色丁香婷婷综合久久片| 国产女人18毛片水真多成人如厕| 人人爽香蕉精品| 久久久www免费人成精品| 丁香激情综合国产| 亚洲黄色性网站| 欧美v日韩v国产v| 不卡av电影在线播放| 亚洲你懂的在线视频| 欧美一级免费大片| 国产91高潮流白浆在线麻豆| 亚洲精品欧美专区| 日韩欧美一区中文| youjizz久久| 免费在线看一区| 综合色中文字幕| 欧美变态tickle挠乳网站| 91蜜桃视频在线|