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

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

?? rc2.java

?? jpeg2000編解碼
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
     * This calls the Cipher constructor with <i>implBuffering</i> false,     * <i>implPadding</i> false and the provider set to "Cryptix".     *     * @see java.security.Cipher#UNINITIALIZED     */    public RC2 () {        super(false, false, "Cryptix");        link();    }    /**     * Cleans up resources used by this instance, if necessary.     */    protected final void finalize() {        if (native_lock != null) {            synchronized(native_lock) {                String error = native_finalize(); // may be called more than once                if (error != null)                    debug(error + " in native_finalize");            }        }    }    /**     * Always throws a CloneNotSupportedException (cloning of ciphers is not     * supported for security reasons).     */    public final Object clone() throws CloneNotSupportedException {        throw new CloneNotSupportedException();    }// Implementation of JCE methods//............................................................................        /**     * <b>SPI</b>: Returns the length of an input block, in bytes.     *     * @return the length in bytes of an input block for this cipher.     */    public int engineBlockSize () { return BLOCK_SIZE; }    /**     * <b>SPI</b>: Initializes this cipher for encryption, using the     * specified key.     *     * @param key   the key to use for encryption.     * @exception   KeyException if the key is invalid.     */    public void engineInitEncrypt (Key key)    throws KeyException {        makeKey(key);    }    /**     * <b>SPI</b>: Initializes this cipher for decryption, using the     * specified key.     *     * @param key   the key to use for decryption.     * @exception   KeyException if the key is invalid.     */    public void engineInitDecrypt (Key key)    throws KeyException {        makeKey(key);    }    /**     * <b>SPI</b>: This is the main engine method for updating data.     * <p>     * <i>in</i> and <i>out</i> may be the same array, and the input and output     * regions may overlap.     *     * @param  in           the input data.     * @param  inOffset     the offset into in specifying where the data starts.     * @param  inLen        the length of the subarray.     * @param  out          the output array.     * @param  outOffset    the offset indicating where to start writing into     *                      the out array.     * @return the number of bytes written.     * @exception CryptixException if the native library is being used, and it     *                      reports an error.     */    protected int    engineUpdate(byte[] in, int inOffset, int inLen, byte[] out, int outOffset) {        if (inLen < 0) throw new IllegalArgumentException("inLen < 0");        int blockCount = inLen / BLOCK_SIZE;        inLen = blockCount * BLOCK_SIZE;        boolean doEncrypt = (getState() == ENCRYPT);        // Avoid overlapping input and output regions.        if (in == out && (outOffset >= inOffset && outOffset < (long)inOffset+inLen ||                          inOffset >= outOffset && inOffset < (long)outOffset+inLen)) {            byte[] newin = new byte[inLen];            System.arraycopy(in, inOffset, newin, 0, inLen);            in = newin;            inOffset = 0;        }        if (native_lock != null) {            synchronized(native_lock) {                // If in == null || out == 0, evaluating their lengths will throw a                // NullPointerException.                if (inOffset < 0 || (long)inOffset + inLen > in.length ||                    outOffset < 0 || (long)outOffset + inLen > out.length)                    throw new ArrayIndexOutOfBoundsException(getAlgorithm() +                        ": Arguments to native_crypt would cause a buffer overflow");                // In future, we may pass more than one block to native_crypt to reduce                // native method overhead.                for (int i = 0; i < blockCount; i++) {                    if (0 == native_crypt(native_cookie, in, inOffset, out, outOffset,                                          doEncrypt))                        throw new CryptixException(getAlgorithm() + ": Error in native code");                    inOffset += BLOCK_SIZE;                    outOffset += BLOCK_SIZE;                }            }        } else if (doEncrypt) { // state == ENCRYPT            for (int i = 0; i < blockCount; i++) {                blockEncrypt(in, inOffset, out, outOffset);                inOffset += BLOCK_SIZE;                outOffset += BLOCK_SIZE;            }        } else {                // state == DECRYPT            for (int i = 0; i < blockCount; i++) {                blockDecrypt(in, inOffset, out, outOffset);                inOffset += BLOCK_SIZE;                outOffset += BLOCK_SIZE;            }        }        return inLen;    }// Own methods//............................................................................    /**     * Expands a user key to a working RC2 key.     * <p>     * The secret key is first expanded to fill 128 bytes (64 words).     * The expansion consists of taking the sum of the first and last     * bytes in the user key, looking up the sum (modulo 256) in the S-box,     * and appending the result to the key. The operation is repeated with     * the second byte and new last byte of the key until all 128 bytes     * have been generated. Note that the following pseudocode treats the S     * array (the session key) as an array of 128 bytes rather than 64 words:     * <pre>     *   for j = 0 to length-1 do     *     S[ j ] = K[ j ];     *   for j = length to 127 do     *     S[ j ] = sBox[ ( S[ j-length ] + S[ j-1 ] ) mod 256 ];     * </pre>     */    private void makeKey (Key key)    throws KeyException {        byte[] userkey = key.getEncoded();        if (userkey == null) throw new KeyException("Null RC2 user key");        int len = userkey.length;        if (len > 128) throw new KeyException("Invalid RC2 user key size");        // If native library available then use it. If not or if        // native method returned error then revert to 100% Java.        if (native_lock != null) {            synchronized(native_lock) {                try {                    linkStatus.check(native_ks(native_cookie, userkey));                    return;                } catch (Error error) {                    native_finalize();                    native_lock = null;if (DEBUG && debuglevel > 0) debug(error + ". Will use 100% Java.");                }            }        }        // first work with a 128 byte array        int[] sk = new int[128];        for (int i = 0; i < len; i++) sk[i] = userkey[i] & 0xFF;        for (int i = len; i < 128; i++)            sk[i] = S_BOX[(sk[i - len] + sk[i - 1]) & 0xFF];        // The final phase of the key expansion involves replacing the        // first byte of S with the entry selected from the S-box. In fact        // this is a special case for tailoring the key to a given length.        // sk[0] = S_BOX[sk[0]];        // hmm.... key reduction to 'bits' bits        sk[128 - len] = S_BOX[sk[128 - len] & 0xFF];        for (int i = 127 - len; i >= 0; i--)            sk[i] = S_BOX[sk[i + len] ^ sk[i + 1]];        // now convert this byte array to the short array session key schedule        for (int i = 63; i >= 0; i--)            sKey[i] = (sk[i * 2 + 1] << 8 | sk[i * 2]) & 0xFFFF;    }    /**     * The cipher has 16 full rounds, each divided into 4 subrounds.     * In addition the fifth and eleventh rounds add the contents of     * the S-box indexed by one of the data words to another of the     * data words following the four subrounds.     */    private void blockEncrypt (byte[] in, int inOff, byte[] out, int outOff) {        int w0 = (in[inOff++] & 0xFF) | (in[inOff++] & 0xFF) << 8;        int w1 = (in[inOff++] & 0xFF) | (in[inOff++] & 0xFF) << 8;        int w2 = (in[inOff++] & 0xFF) | (in[inOff++] & 0xFF) << 8;        int w3 = (in[inOff++] & 0xFF) | (in[inOff  ] & 0xFF) << 8;        int j = 0;        for (int i = 0; i < 16; i++) {            w0 = (w0 + (w1 & ~w3) + (w2 & w3) + sKey[j++]) & 0xFFFF;            w0 = w0 << 1 | w0 >>> 15;            w1 = (w1 + (w2 & ~w0) + (w3 & w0) + sKey[j++]) & 0xFFFF;            w1 = w1 << 2 | w1 >>> 14;            w2 = (w2 + (w3 & ~w1) + (w0 & w1) + sKey[j++]) & 0xFFFF;            w2 = w2 << 3 | w2 >>> 13;            w3 = (w3 + (w0 & ~w2) + (w1 & w2) + sKey[j++]) & 0xFFFF;            w3 = w3 << 5 | w3 >>> 11;            if ((i == 4) || (i == 10)) {                w0 += sKey[w3 & 0x3F];                w1 += sKey[w0 & 0x3F];                w2 += sKey[w1 & 0x3F];                w3 += sKey[w2 & 0x3F];            }        }        out[outOff++] = (byte) w0;        out[outOff++] = (byte)(w0 >>> 8);        out[outOff++] = (byte) w1;        out[outOff++] = (byte)(w1 >>> 8);        out[outOff++] = (byte) w2;        out[outOff++] = (byte)(w2 >>> 8);        out[outOff++] = (byte) w3;        out[outOff  ] = (byte)(w3 >>> 8);    }    /**     * The decryption operation is simply the inverse of the     * encryption operation.     */    private void blockDecrypt (byte[] in, int inOff, byte[] out, int outOff) {        int w0 = (in[inOff + 0] & 0xFF) | (in[inOff + 1] & 0xFF) << 8;        int w1 = (in[inOff + 2] & 0xFF) | (in[inOff + 3] & 0xFF) << 8;        int w2 = (in[inOff + 4] & 0xFF) | (in[inOff + 5] & 0xFF) << 8;        int w3 = (in[inOff + 6] & 0xFF) | (in[inOff + 7] & 0xFF) << 8;        int j = 63;        for (int i = 15; i >= 0; i--) {            w3 = (w3 >>> 5 | w3 << 11) & 0xFFFF;            w3 = (w3 - (w0 & ~w2) - (w1 & w2) - sKey[j--]) & 0xFFFF;            w2 = (w2 >>> 3 | w2 << 13) & 0xFFFF;            w2 = (w2 - (w3 & ~w1) - (w0 & w1) - sKey[j--]) & 0xFFFF;            w1 = (w1 >>> 2 | w1 << 14) & 0xFFFF;            w1 = (w1 - (w2 & ~w0) - (w3 & w0) - sKey[j--]) & 0xFFFF;            w0 = (w0 >>> 1 | w0 << 15) & 0xFFFF;            w0 = (w0 - (w1 & ~w3) - (w2 & w3) - sKey[j--]) & 0xFFFF;            if ((i == 11) || (i == 5)) {                w3 = (w3 - sKey[w2 & 0x3F]) & 0xFFFF;                w2 = (w2 - sKey[w1 & 0x3F]) & 0xFFFF;                w1 = (w1 - sKey[w0 & 0x3F]) & 0xFFFF;                w0 = (w0 - sKey[w3 & 0x3F]) & 0xFFFF;            }        }        out[outOff++] = (byte) w0;        out[outOff++] = (byte)(w0 >>> 8);        out[outOff++] = (byte) w1;        out[outOff++] = (byte)(w1 >>> 8);        out[outOff++] = (byte) w2;        out[outOff++] = (byte)(w2 >>> 8);        out[outOff++] = (byte) w3;        out[outOff  ] = (byte)(w3 >>> 8);    }}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区精品婷婷| 这里只有精品视频在线观看| 国产亚洲福利社区一区| 国产ts人妖一区二区| 国产亚洲一区二区三区| 丁香六月综合激情| 亚洲激情av在线| 欧美福利一区二区| 国产美女一区二区| 亚洲欧美日韩国产综合| 欧美日韩精品一区二区天天拍小说| 亚洲国产精品人人做人人爽| 91精品国产91热久久久做人人| 日韩不卡在线观看日韩不卡视频| 欧美mv和日韩mv的网站| 国产99久久久久久免费看农村| 国产拍欧美日韩视频二区| hitomi一区二区三区精品| 亚洲线精品一区二区三区八戒| 日韩一区二区三区观看| 国产麻豆成人传媒免费观看| 亚洲色图欧美在线| 日韩一级免费观看| 91色porny蝌蚪| 免费在线观看视频一区| 中文字幕不卡在线观看| 欧美在线免费观看视频| 韩国视频一区二区| 亚洲欧美视频在线观看视频| 欧美一区二区在线视频| 不卡av在线网| 久久se精品一区精品二区| 中文字幕一区二区三区乱码在线| 精品视频在线免费观看| 激情综合色综合久久| 亚洲精品久久久久久国产精华液| 欧美一区二区久久久| 91亚洲男人天堂| 国产综合久久久久影院| 亚洲国产精品一区二区尤物区| 久久影院电视剧免费观看| 欧美亚洲国产一区二区三区| 粉嫩高潮美女一区二区三区| 首页亚洲欧美制服丝腿| 自拍偷拍国产精品| 久久久91精品国产一区二区三区| 欧美区在线观看| 色偷偷88欧美精品久久久| 国产成人av自拍| 久久精品国产精品亚洲综合| 亚洲成人激情社区| 成人免费在线观看入口| 欧美国产精品一区| www久久精品| 日韩一区二区麻豆国产| 欧美日韩一区在线| 日本高清无吗v一区| 99久免费精品视频在线观看| 激情综合色丁香一区二区| 五月天欧美精品| 亚洲国产中文字幕在线视频综合 | 午夜精品视频一区| 亚洲人成网站色在线观看| 国产精品无码永久免费888| 欧美成人一级视频| 日韩久久久精品| 欧美一激情一区二区三区| 欧美男同性恋视频网站| 欧美三级在线播放| 欧美日韩一区在线观看| 欧美性做爰猛烈叫床潮| 欧美在线观看视频一区二区| 日本高清视频一区二区| 在线精品观看国产| 欧美日韩精品系列| 欧美精品乱码久久久久久按摩| 欧美日韩电影在线| 91精品蜜臀在线一区尤物| 欧美一二三四区在线| 精品精品国产高清a毛片牛牛 | 欧美一级一级性生活免费录像| 欧美综合色免费| 欧美在线观看视频一区二区 | 日本韩国精品在线| 在线观看日韩高清av| 欧美性大战久久久久久久蜜臀| 色视频成人在线观看免| 欧美在线一区二区三区| 在线播放中文字幕一区| 日韩一区二区三| 久久久国产一区二区三区四区小说 | 777a∨成人精品桃花网| 欧美电影免费观看完整版| 久久女同精品一区二区| 国产精品沙发午睡系列990531| 亚洲色图在线视频| 天涯成人国产亚洲精品一区av| 另类综合日韩欧美亚洲| 国产成人综合在线播放| 99久久精品国产麻豆演员表| 欧美色视频在线观看| 日韩欧美资源站| 国产精品久久久久久久岛一牛影视 | 99久久99久久精品免费看蜜桃| 色哟哟在线观看一区二区三区| 欧美体内she精高潮| 精品国产网站在线观看| 国产精品久久三区| 亚洲国产一区视频| 久久 天天综合| 97久久精品人人做人人爽| 欧美肥妇free| 日本一区二区动态图| 亚洲福中文字幕伊人影院| 国产麻豆精品视频| 欧美中文字幕一二三区视频| 日韩免费性生活视频播放| 国产精品久久三区| 日韩不卡在线观看日韩不卡视频| 国产91精品欧美| 欧美人牲a欧美精品| 中文字幕乱码久久午夜不卡 | 国产一区二区伦理| 色综合天天视频在线观看| 日韩精品一区二区三区视频播放| 亚洲手机成人高清视频| 久久国产精品区| 日本精品一级二级| 久久夜色精品一区| 亚洲国产精品欧美一二99| 粉嫩av一区二区三区粉嫩| 欧美精品乱人伦久久久久久| 国产精品视频一二三| 久久国产精品无码网站| 色成年激情久久综合| 国产欧美一区二区精品婷婷| 日本成人在线不卡视频| 91网站在线观看视频| 久久综合色之久久综合| 午夜精品免费在线| 色婷婷综合久久久久中文一区二区| 精品久久人人做人人爽| 天堂影院一区二区| 色久综合一二码| 中文字幕一区二区三区不卡| 国产一区二区精品久久91| 欧美美女网站色| 亚洲另类一区二区| 高清在线观看日韩| 26uuu久久综合| 青青草一区二区三区| 欧美男男青年gay1069videost| 日韩一区欧美一区| 成人开心网精品视频| 久久精品日产第一区二区三区高清版| 婷婷丁香久久五月婷婷| 欧美日精品一区视频| 一区二区三区精品| 99久久99久久精品免费看蜜桃 | 一本色道**综合亚洲精品蜜桃冫| 国产色综合一区| 国产夫妻精品视频| 久久综合色天天久久综合图片| 蜜臀精品久久久久久蜜臀| 91精品久久久久久久91蜜桃| 亚洲第一福利一区| 欧美日韩一区二区三区四区五区| 依依成人精品视频| 欧美在线视频全部完| 亚洲高清不卡在线| 欧美精品丝袜久久久中文字幕| 午夜精品国产更新| 欧美一区二区二区| 麻豆传媒一区二区三区| 欧美不卡一二三| 国产乱子轮精品视频| 久久精品视频在线看| 国产成人精品亚洲午夜麻豆| 国产精品色一区二区三区| 99视频在线精品| 亚洲影视在线播放| 91精品国产综合久久香蕉麻豆| 欧美a一区二区| 精品国产乱码久久| 国产成人在线视频网址| 国产精品网站一区| 色哟哟一区二区在线观看| 亚洲综合999| 日韩欧美高清一区| 成人免费毛片高清视频| 亚洲视频狠狠干| 欧美日韩国产一级| 国产在线播放一区| 中文字幕亚洲电影| 欧美日韩一区小说| 国内成人免费视频| 综合电影一区二区三区| 欧美另类高清zo欧美| 国产一区不卡视频| 一区二区日韩av|