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

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

?? md5digest.java

?? 這是一個基于java編寫的torrent的P2P源碼
?? 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;
        }
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
香蕉乱码成人久久天堂爱免费| 一区二区三区在线视频观看| 精品欧美一区二区三区精品久久| 欧美三级韩国三级日本三斤| 色妞www精品视频| 91免费观看在线| 91色九色蝌蚪| 色屁屁一区二区| 91久久精品一区二区| 色88888久久久久久影院按摩| 91色婷婷久久久久合中文| 欧美在线制服丝袜| 91精品福利在线一区二区三区| 欧美一区二区三区四区久久| 日韩欧美在线网站| 精品av久久707| 秋霞电影网一区二区| 日韩av二区在线播放| 久久99久国产精品黄毛片色诱| 极品销魂美女一区二区三区| 国产激情一区二区三区桃花岛亚洲| 福利一区福利二区| 色欧美88888久久久久久影院| 欧美日本视频在线| 精品国产sm最大网站| 日本一区二区三区四区在线视频| 中文字幕一区视频| 亚洲成人1区2区| 久久99久久久久久久久久久| 高清久久久久久| 欧美丝袜自拍制服另类| 精品国产免费一区二区三区香蕉| 国产欧美一区二区三区在线看蜜臀| 日韩一区中文字幕| 日韩电影网1区2区| 国产69精品久久777的优势| 91精彩视频在线观看| 日韩欧美一区中文| 国产精品国产三级国产普通话三级 | 成人av动漫网站| 欧美午夜精品免费| 久久久久综合网| 玉足女爽爽91| 久99久精品视频免费观看| 成人高清视频免费观看| 91精品国产色综合久久| 欧美国产亚洲另类动漫| 午夜亚洲福利老司机| 国产精品中文字幕一区二区三区| 91麻豆免费视频| 精品国产一区二区精华| 一区二区三区在线高清| 国产在线播放一区二区三区| 91久久一区二区| 久久久91精品国产一区二区三区| 亚洲国产cao| 久久久久久久久久久久久夜| 一级做a爱片久久| 国产乱码精品一区二区三| 欧美在线三级电影| 中文字幕国产一区| 九九视频精品免费| 欧美私人免费视频| 综合欧美亚洲日本| 国精品**一区二区三区在线蜜桃| 在线观看日韩av先锋影音电影院| 国产午夜三级一区二区三| 日本中文字幕不卡| 在线精品视频免费观看| 国产精品无码永久免费888| 日本色综合中文字幕| 色久优优欧美色久优优| 久久久精品tv| 精品一区二区免费看| 欧美日韩国产高清一区| 亚洲欧美色图小说| 成人黄色网址在线观看| 精品国精品国产| 青娱乐精品在线视频| 欧美日韩和欧美的一区二区| 亚洲美女区一区| 99精品国产91久久久久久| 日本一区二区视频在线| 韩国欧美国产一区| 欧美一级久久久| 日韩国产高清影视| 欧美日产在线观看| 无吗不卡中文字幕| 欧美日韩精品电影| 亚洲国产一二三| 色综合色综合色综合色综合色综合 | 99视频精品在线| 欧美韩国日本不卡| 国产精品一区二区黑丝| 精品福利一区二区三区免费视频| 日韩av一级片| 日韩精品一区二区三区视频在线观看| 午夜视频一区二区三区| 欧美日韩成人综合| 午夜成人免费视频| 夜夜精品浪潮av一区二区三区| 成人小视频在线观看| 国产女同性恋一区二区| 风间由美一区二区av101| 久久精品亚洲乱码伦伦中文| 国产一区二区三区高清播放| www欧美成人18+| 国产福利不卡视频| 欧美国产日韩一二三区| 99热这里都是精品| 亚洲精品欧美综合四区| 欧美在线小视频| 日韩精品乱码av一区二区| 欧美精品aⅴ在线视频| 日韩不卡手机在线v区| 日韩欧美一二区| 国产一区二区三区久久悠悠色av| 久久久久久免费网| 波多野结衣精品在线| 亚洲日韩欧美一区二区在线| 在线观看视频欧美| 日本欧美一区二区三区乱码| 欧美zozo另类异族| 成人免费观看视频| 中文字幕欧美激情| 日韩电影在线观看网站| 首页亚洲欧美制服丝腿| 国产91丝袜在线观看| 国产精品久久久久久久久动漫| 91免费观看视频| 亚洲成人你懂的| 国产一区二区看久久| 本田岬高潮一区二区三区| 国产一区二区三区免费在线观看| 国产亚洲综合性久久久影院| 不卡一区在线观看| 一区二区免费在线播放| 日韩一区二区免费视频| 国产精选一区二区三区| 国产精品亚洲一区二区三区在线| 日韩一级免费一区| 三级不卡在线观看| 国产偷国产偷精品高清尤物| 99久精品国产| 国产午夜精品一区二区三区视频| 国产网站一区二区三区| 91亚洲男人天堂| 日本成人中文字幕在线视频| 久久久久国产精品麻豆| 欧美亚洲另类激情小说| 精品一区二区三区久久| 夜夜爽夜夜爽精品视频| 久久久久久电影| 欧美日韩一区二区在线观看视频| 国产高清精品在线| 亚洲国产日韩av| 国产欧美一区二区精品性| 欧美日韩一区小说| 国产美女av一区二区三区| 亚洲综合av网| 日本一区二区成人在线| 69av一区二区三区| 色又黄又爽网站www久久| 国产在线精品国自产拍免费| 亚洲一区成人在线| 中国av一区二区三区| 日韩欧美一级特黄在线播放| 在线观看精品一区| 高清不卡一区二区| 久久国产乱子精品免费女| 夜夜嗨av一区二区三区中文字幕 | 中文字幕中文字幕在线一区| 4438x亚洲最大成人网| 91亚洲资源网| 成人免费黄色在线| 国产伦精品一区二区三区视频青涩 | 蜜桃av一区二区在线观看 | 国产成人午夜精品5599| 天天影视网天天综合色在线播放| 国产精品久久网站| 久久久久久黄色| 日韩亚洲电影在线| 欧美无乱码久久久免费午夜一区| av一区二区久久| 国产成人综合视频| 精品一区二区成人精品| 五月激情丁香一区二区三区| 亚洲精品一二三四区| 亚洲婷婷在线视频| 中日韩免费视频中文字幕| 国产日韩欧美精品一区| 精品国免费一区二区三区| 欧美一区二区三区视频| 欧美日韩国产影片| 欧美熟乱第一页| 欧美天堂一区二区三区| 欧美影院一区二区三区| 色狠狠av一区二区三区| 91蜜桃网址入口| 91丝袜美腿高跟国产极品老师|