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

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

?? md5digest.java

?? 一個基于JAVA的多torrent下載程序
?? JAVA
字號:
package org.bouncycastle.crypto.digests;


/**
 * implementation of MD5 as outlined in "Handbook of Applied Cryptography", pages 346 - 347.
 */
public class MD5Digest
    extends GeneralDigest
{
    private static final int    DIGEST_LENGTH = 16;

    private int     H1, H2, H3, H4;         // IV's

    private int[]   X = new int[16];
    private int     xOff;

	/**
	 * Standard constructor
	 */
    public MD5Digest()
    {
        reset();
    }

	/**
	 * Copy constructor.  This will copy the state of the provided
	 * message digest.
	 */
	public MD5Digest(MD5Digest t)
	{
		super(t);

		H1 = t.H1;
		H2 = t.H2;
		H3 = t.H3;
		H4 = t.H4;

		System.arraycopy(t.X, 0, X, 0, t.X.length);
		xOff = t.xOff;
	}

    public String getAlgorithmName()
    {
        return "MD5";
    }

    public int getDigestSize()
    {
        return DIGEST_LENGTH;
    }

    protected void processWord(
        byte[]  in,
        int     inOff)
    {
        X[xOff++] = (in[inOff] & 0xff) | ((in[inOff + 1] & 0xff) << 8)
            | ((in[inOff + 2] & 0xff) << 16) | ((in[inOff + 3] & 0xff) << 24); 

        if (xOff == 16)
        {
            processBlock();
        }
    }

    protected void processLength(
        long    bitLength)
    {
        if (xOff > 14)
        {
            processBlock();
        }

        X[14] = (int)(bitLength & 0xffffffff);
        X[15] = (int)(bitLength >>> 32);
    }

    private void unpackWord(
        int     word,
        byte[]  out,
        int     outOff)
    {
        out[outOff]     = (byte)word;
        out[outOff + 1] = (byte)(word >>> 8);
        out[outOff + 2] = (byte)(word >>> 16);
        out[outOff + 3] = (byte)(word >>> 24);
    }

    public int doFinal(
        byte[]  out,
        int     outOff)
    {
        finish();

        unpackWord(H1, out, outOff);
        unpackWord(H2, out, outOff + 4);
        unpackWord(H3, out, outOff + 8);
        unpackWord(H4, out, outOff + 12);

        reset();

        return DIGEST_LENGTH;
    }

    /**
     * reset the chaining variables to the IV values.
     */
    public void reset()
    {
        super.reset();

        H1 = 0x67452301;
        H2 = 0xefcdab89;
        H3 = 0x98badcfe;
        H4 = 0x10325476;

        xOff = 0;

        for (int i = 0; i != X.length; i++)
        {
            X[i] = 0;
        }
    }

    //
    // round 1 left rotates
    //
    private static final int S11 = 7;
    private static final int S12 = 12;
    private static final int S13 = 17;
    private static final int S14 = 22;

    //
    // round 2 left rotates
    //
    private static final int S21 = 5;
    private static final int S22 = 9;
    private static final int S23 = 14;
    private static final int S24 = 20;

    //
    // round 3 left rotates
    //
    private static final int S31 = 4;
    private static final int S32 = 11;
    private static final int S33 = 16;
    private static final int S34 = 23;

    //
    // round 4 left rotates
    //
    private static final int S41 = 6;
    private static final int S42 = 10;
    private static final int S43 = 15;
    private static final int S44 = 21;

    /*
     * rotate int x left n bits.
     */
    private int rotateLeft(
        int x,
        int n)
    {
        return (x << n) | (x >>> (32 - n));
    }

    /*
     * F, G, H and I are the basic MD5 functions.
     */
    private int F(
        int u,
        int v,
        int w)
    {
        return (u & v) | (~u & w);
    }

    private int G(
        int u,
        int v,
        int w)
    {
        return (u & w) | (v & ~w);
    }

    private int H(
        int u,
        int v,
        int w)
    {
        return u ^ v ^ w;
    }

    private int K(
        int u,
        int v,
        int w)
    {
        return v ^ (u | ~w);
    }

    protected void processBlock()
    {
        int a = H1;
        int b = H2;
        int c = H3;
        int d = H4;

        //
        // Round 1 - F cycle, 16 times.
        //
        a = rotateLeft((a + F(b, c, d) + X[ 0] + 0xd76aa478), S11) + b;
        d = rotateLeft((d + F(a, b, c) + X[ 1] + 0xe8c7b756), S12) + a;
        c = rotateLeft((c + F(d, a, b) + X[ 2] + 0x242070db), S13) + d;
        b = rotateLeft((b + F(c, d, a) + X[ 3] + 0xc1bdceee), S14) + c;
        a = rotateLeft((a + F(b, c, d) + X[ 4] + 0xf57c0faf), S11) + b;
        d = rotateLeft((d + F(a, b, c) + X[ 5] + 0x4787c62a), S12) + a;
        c = rotateLeft((c + F(d, a, b) + X[ 6] + 0xa8304613), S13) + d;
        b = rotateLeft((b + F(c, d, a) + X[ 7] + 0xfd469501), S14) + c;
        a = rotateLeft((a + F(b, c, d) + X[ 8] + 0x698098d8), S11) + b;
        d = rotateLeft((d + F(a, b, c) + X[ 9] + 0x8b44f7af), S12) + a;
        c = rotateLeft((c + F(d, a, b) + X[10] + 0xffff5bb1), S13) + d;
        b = rotateLeft((b + F(c, d, a) + X[11] + 0x895cd7be), S14) + c;
        a = rotateLeft((a + F(b, c, d) + X[12] + 0x6b901122), S11) + b;
        d = rotateLeft((d + F(a, b, c) + X[13] + 0xfd987193), S12) + a;
        c = rotateLeft((c + F(d, a, b) + X[14] + 0xa679438e), S13) + d;
        b = rotateLeft((b + F(c, d, a) + X[15] + 0x49b40821), S14) + c;

        //
        // Round 2 - G cycle, 16 times.
        //
        a = rotateLeft((a + G(b, c, d) + X[ 1] + 0xf61e2562), S21) + b;
        d = rotateLeft((d + G(a, b, c) + X[ 6] + 0xc040b340), S22) + a;
        c = rotateLeft((c + G(d, a, b) + X[11] + 0x265e5a51), S23) + d;
        b = rotateLeft((b + G(c, d, a) + X[ 0] + 0xe9b6c7aa), S24) + c;
        a = rotateLeft((a + G(b, c, d) + X[ 5] + 0xd62f105d), S21) + b;
        d = rotateLeft((d + G(a, b, c) + X[10] + 0x02441453), S22) + a;
        c = rotateLeft((c + G(d, a, b) + X[15] + 0xd8a1e681), S23) + d;
        b = rotateLeft((b + G(c, d, a) + X[ 4] + 0xe7d3fbc8), S24) + c;
        a = rotateLeft((a + G(b, c, d) + X[ 9] + 0x21e1cde6), S21) + b;
        d = rotateLeft((d + G(a, b, c) + X[14] + 0xc33707d6), S22) + a;
        c = rotateLeft((c + G(d, a, b) + X[ 3] + 0xf4d50d87), S23) + d;
        b = rotateLeft((b + G(c, d, a) + X[ 8] + 0x455a14ed), S24) + c;
        a = rotateLeft((a + G(b, c, d) + X[13] + 0xa9e3e905), S21) + b;
        d = rotateLeft((d + G(a, b, c) + X[ 2] + 0xfcefa3f8), S22) + a;
        c = rotateLeft((c + G(d, a, b) + X[ 7] + 0x676f02d9), S23) + d;
        b = rotateLeft((b + G(c, d, a) + X[12] + 0x8d2a4c8a), S24) + c;

        //
        // Round 3 - H cycle, 16 times.
        //
        a = rotateLeft((a + H(b, c, d) + X[ 5] + 0xfffa3942), S31) + b;
        d = rotateLeft((d + H(a, b, c) + X[ 8] + 0x8771f681), S32) + a;
        c = rotateLeft((c + H(d, a, b) + X[11] + 0x6d9d6122), S33) + d;
        b = rotateLeft((b + H(c, d, a) + X[14] + 0xfde5380c), S34) + c;
        a = rotateLeft((a + H(b, c, d) + X[ 1] + 0xa4beea44), S31) + b;
        d = rotateLeft((d + H(a, b, c) + X[ 4] + 0x4bdecfa9), S32) + a;
        c = rotateLeft((c + H(d, a, b) + X[ 7] + 0xf6bb4b60), S33) + d;
        b = rotateLeft((b + H(c, d, a) + X[10] + 0xbebfbc70), S34) + c;
        a = rotateLeft((a + H(b, c, d) + X[13] + 0x289b7ec6), S31) + b;
        d = rotateLeft((d + H(a, b, c) + X[ 0] + 0xeaa127fa), S32) + a;
        c = rotateLeft((c + H(d, a, b) + X[ 3] + 0xd4ef3085), S33) + d;
        b = rotateLeft((b + H(c, d, a) + X[ 6] + 0x04881d05), S34) + c;
        a = rotateLeft((a + H(b, c, d) + X[ 9] + 0xd9d4d039), S31) + b;
        d = rotateLeft((d + H(a, b, c) + X[12] + 0xe6db99e5), S32) + a;
        c = rotateLeft((c + H(d, a, b) + X[15] + 0x1fa27cf8), S33) + d;
        b = rotateLeft((b + H(c, d, a) + X[ 2] + 0xc4ac5665), S34) + c;

        //
        // Round 4 - K cycle, 16 times.
        //
        a = rotateLeft((a + K(b, c, d) + X[ 0] + 0xf4292244), S41) + b;
        d = rotateLeft((d + K(a, b, c) + X[ 7] + 0x432aff97), S42) + a;
        c = rotateLeft((c + K(d, a, b) + X[14] + 0xab9423a7), S43) + d;
        b = rotateLeft((b + K(c, d, a) + X[ 5] + 0xfc93a039), S44) + c;
        a = rotateLeft((a + K(b, c, d) + X[12] + 0x655b59c3), S41) + b;
        d = rotateLeft((d + K(a, b, c) + X[ 3] + 0x8f0ccc92), S42) + a;
        c = rotateLeft((c + K(d, a, b) + X[10] + 0xffeff47d), S43) + d;
        b = rotateLeft((b + K(c, d, a) + X[ 1] + 0x85845dd1), S44) + c;
        a = rotateLeft((a + K(b, c, d) + X[ 8] + 0x6fa87e4f), S41) + b;
        d = rotateLeft((d + K(a, b, c) + X[15] + 0xfe2ce6e0), S42) + a;
        c = rotateLeft((c + K(d, a, b) + X[ 6] + 0xa3014314), S43) + d;
        b = rotateLeft((b + K(c, d, a) + X[13] + 0x4e0811a1), S44) + c;
        a = rotateLeft((a + K(b, c, d) + X[ 4] + 0xf7537e82), S41) + b;
        d = rotateLeft((d + K(a, b, c) + X[11] + 0xbd3af235), S42) + a;
        c = rotateLeft((c + K(d, a, b) + X[ 2] + 0x2ad7d2bb), S43) + d;
        b = rotateLeft((b + K(c, d, a) + X[ 9] + 0xeb86d391), S44) + c;

        H1 += a;
        H2 += b;
        H3 += c;
        H4 += d;

        //
        // reset the offset and clean out the word buffer.
        //
        xOff = 0;
        for (int i = 0; i != X.length; i++)
        {
            X[i] = 0;
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品资源二区在线| 久久久精品国产免大香伊| 欧美日韩亚洲综合在线| 日韩欧美亚洲一区二区| 国产精品免费久久久久| 午夜视频一区在线观看| 国产成人av在线影院| 欧美挠脚心视频网站| 国产精品污网站| 美女久久久精品| 欧美综合天天夜夜久久| 中文字幕av不卡| 激情综合色综合久久综合| 欧美中文字幕一区二区三区亚洲| 久久亚洲二区三区| 视频在线在亚洲| 色综合久久中文字幕综合网| 久久久www成人免费毛片麻豆| 国产不卡在线视频| 欧美精品 日韩| 亚洲精品国产成人久久av盗摄| 国产精品123| 日韩欧美电影一二三| 性做久久久久久免费观看| 色综合欧美在线| 18欧美乱大交hd1984| 成人免费毛片aaaaa**| 久久久影视传媒| 国产呦精品一区二区三区网站| 欧美一区在线视频| 五月婷婷久久丁香| 欧美日韩成人综合在线一区二区| 日韩理论在线观看| www.日韩av| 国产精品麻豆视频| av中文字幕亚洲| 一区视频在线播放| www.性欧美| 一区二区三区在线影院| 在线观看一区不卡| 亚洲国产aⅴ天堂久久| 欧美性极品少妇| 天天影视涩香欲综合网| 777午夜精品免费视频| 日韩黄色一级片| 日韩欧美电影在线| 国产乱妇无码大片在线观看| 久久久精品国产免费观看同学| 国产一区二区三区在线观看精品 | 日韩视频免费观看高清完整版| 视频一区视频二区中文| 欧美一卡二卡在线| 九九视频精品免费| 亚洲国产精品国自产拍av| eeuss鲁片一区二区三区| 亚洲欧美视频在线观看| 色av成人天堂桃色av| 性感美女极品91精品| 日韩精品在线一区二区| 337p亚洲精品色噜噜狠狠| 天天影视涩香欲综合网| 日韩精品一区二区三区在线观看 | 中文一区二区在线观看| av电影在线不卡| 一区二区三区色| 日韩一级黄色片| 国产成人在线色| 一二三区精品福利视频| 欧美变态tickle挠乳网站| 成人精品小蝌蚪| 亚洲高清免费视频| 久久久91精品国产一区二区精品 | 中文字幕在线免费不卡| 欧美日韩国产bt| 国产成人8x视频一区二区| 一区二区在线观看视频在线观看| 91精品国产91久久综合桃花| 成人午夜av在线| 日日夜夜一区二区| 日本一区免费视频| 欧美日韩一区三区| 国产v日产∨综合v精品视频| 亚洲第一综合色| 国产拍揄自揄精品视频麻豆| 欧美亚洲一区二区在线| 国产成人鲁色资源国产91色综 | 欧美年轻男男videosbes| 国产一区二区在线免费观看| 亚洲主播在线播放| 国产欧美精品区一区二区三区 | 中文字幕一区二区三区在线观看| 欧美日韩一区二区三区四区五区| 国产精品一区在线观看乱码| 午夜a成v人精品| 亚洲精品国产高清久久伦理二区| 久久午夜免费电影| 欧美妇女性影城| 色欧美日韩亚洲| 波多野结衣一区二区三区| 久久国产精品72免费观看| 一区二区三区四区在线播放| 国产视频视频一区| 欧美一区二区久久久| 欧美亚洲综合色| 99精品视频在线免费观看| 国产麻豆精品在线观看| 日韩精品1区2区3区| 亚洲乱码国产乱码精品精的特点| 国产日本一区二区| 久久午夜色播影院免费高清| 日韩一区二区三| 欧美三电影在线| 色天天综合色天天久久| 91视视频在线观看入口直接观看www| 国产在线精品免费av| 久久精品理论片| 蜜臀久久久久久久| 日本在线播放一区二区三区| 午夜成人免费视频| 污片在线观看一区二区| 日韩精品午夜视频| 丝袜脚交一区二区| 日韩vs国产vs欧美| 日本在线播放一区二区三区| 日日夜夜精品视频天天综合网| 日韩精彩视频在线观看| 免费精品视频最新在线| 蜜桃视频在线一区| 久久99国产精品久久| 韩国v欧美v日本v亚洲v| 国产精品77777| 成人在线视频一区二区| 波多野结衣亚洲一区| 色综合天天综合网国产成人综合天 | 日韩欧美黄色影院| 精品久久国产老人久久综合| 久久在线免费观看| 国产精品日产欧美久久久久| 中文字幕一区二区不卡| 亚洲另类在线制服丝袜| 五月天亚洲精品| 免费精品视频最新在线| 国产露脸91国语对白| 91视频国产观看| 欧美视频一区在线| 精品奇米国产一区二区三区| 国产日韩欧美亚洲| 亚洲免费成人av| 欧美aaa在线| 国产精品白丝jk黑袜喷水| 91麻豆国产精品久久| 91.com在线观看| 久久久99免费| 亚洲一区二区精品视频| 精品亚洲国内自在自线福利| 国产91色综合久久免费分享| 色视频欧美一区二区三区| 在线综合视频播放| 日本一区二区免费在线| 一区二区三区在线视频观看| 免费欧美日韩国产三级电影| 成人三级伦理片| 欧美一区二区三区四区久久| 中文字幕av一区二区三区免费看| 五月婷婷久久丁香| 成人精品国产一区二区4080| 欧美剧情片在线观看| 国产精品免费免费| 免费欧美日韩国产三级电影| av午夜精品一区二区三区| 日韩午夜中文字幕| 亚洲欧美另类久久久精品2019| 日韩成人午夜电影| 色婷婷狠狠综合| 欧美激情一区二区三区不卡| 日韩av网站在线观看| 91麻豆成人久久精品二区三区| 欧美成人aa大片| 亚洲国产精品自拍| 91在线观看成人| 国产偷v国产偷v亚洲高清| 青青草原综合久久大伊人精品| 99久久99久久精品免费观看| 久久色视频免费观看| 日韩av午夜在线观看| 欧美三电影在线| 亚洲精品五月天| 成人精品免费看| 亚洲精品一区二区三区精华液 | 666欧美在线视频| 伊人婷婷欧美激情| 99久久精品久久久久久清纯| 久久久久久久久久久久电影 | 亚洲最大成人综合| 波波电影院一区二区三区| 久久精品视频网| 狠狠色2019综合网| 亚洲乱码国产乱码精品精98午夜 | 26uuu亚洲综合色| 看电影不卡的网站|