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

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

?? md5digest.java

?? 基于JXTA開發平臺的下載軟件開發源代碼
?? 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影视| 亚洲人精品午夜| 91麻豆精品国产91久久久久| 欧美做爰猛烈大尺度电影无法无天| 亚洲国产综合色| 久久午夜电影网| 色国产综合视频| 秋霞国产午夜精品免费视频| 久久久91精品国产一区二区精品| 99视频一区二区| 日韩电影在线看| 国产精品亲子伦对白| 欧美日韩成人综合| 大胆欧美人体老妇| 日韩精品久久久久久| 国产午夜亚洲精品午夜鲁丝片| 色天天综合色天天久久| 精品在线播放午夜| 一区二区三区高清| 久久精品欧美日韩| 欧美日韩黄视频| 成人精品免费看| 日本怡春院一区二区| 中文字幕日韩一区二区| 日韩一区二区三区观看| 91亚洲精品一区二区乱码| 久久精品久久精品| 亚洲小少妇裸体bbw| 日本一区免费视频| 日韩片之四级片| 欧美性生活影院| 成人av在线资源网站| 久草在线在线精品观看| 亚洲18影院在线观看| 亚洲欧洲一区二区在线播放| 精品电影一区二区| 欧美乱妇23p| 在线免费观看视频一区| 成人久久18免费网站麻豆| 麻豆91在线播放免费| 天堂精品中文字幕在线| 亚洲日本韩国一区| 国产精品视频一二| 国产午夜精品福利| wwwwww.欧美系列| 欧美mv日韩mv国产网站| 欧美精品久久99| 欧美精品丝袜中出| 欧美日韩一区二区三区高清| 91免费看视频| 91免费观看在线| 99精品偷自拍| 99久久综合色| 99久久er热在这里只有精品15| 国产不卡高清在线观看视频| 国产在线一区二区综合免费视频| 另类小说图片综合网| 日本网站在线观看一区二区三区| 亚洲一区av在线| 亚洲国产成人高清精品| 亚洲一卡二卡三卡四卡无卡久久 | 欧美精品少妇一区二区三区| 欧亚洲嫩模精品一区三区| 在线看国产一区| 在线国产电影不卡| 在线观看日韩电影| 欧美日韩色综合| 欧美一区二区三区爱爱| 精品美女被调教视频大全网站| 欧美大片免费久久精品三p| 精品噜噜噜噜久久久久久久久试看 | 国产精品乱码人人做人人爱| 国产精品私房写真福利视频| 国产精品成人一区二区艾草 | 国产精品久久久久久一区二区三区 | 99在线视频精品| 91色综合久久久久婷婷| 欧美日本韩国一区| 91精品国产全国免费观看| 日韩欧美激情四射| 久久九九久久九九| 亚洲欧美日韩国产中文在线| 一区二区理论电影在线观看| 日日欢夜夜爽一区| 国产精品一卡二卡| 91视频免费播放| 欧美一区欧美二区| 欧美韩国日本综合| 亚洲综合在线五月| 另类综合日韩欧美亚洲| 成人av影院在线| 欧美日韩一区 二区 三区 久久精品| 337p亚洲精品色噜噜噜| 久久久综合网站| 一区二区三区高清| 国精品**一区二区三区在线蜜桃| 粗大黑人巨茎大战欧美成人| 在线观看日韩毛片| 精品国产乱码久久久久久1区2区| 国产精品久久毛片a| 婷婷综合在线观看| 国产精品亚洲视频| 欧美日韩精品欧美日韩精品一 | 亚洲精品在线电影| 亚洲精选视频在线| 蜜桃av一区二区在线观看| 成人高清免费观看| 欧美一区二区三区视频免费播放| 国产欧美日韩视频在线观看| 亚洲制服丝袜在线| 国产成人免费在线视频| 欧美人成免费网站| √…a在线天堂一区| 91国内精品野花午夜精品| 日韩一区二区免费在线观看| 国产精品国产自产拍在线| 秋霞国产午夜精品免费视频| 色综合天天性综合| 久久久久久免费网| 视频一区欧美日韩| 色噜噜偷拍精品综合在线| 久久蜜桃一区二区| 日本美女一区二区三区| 91老师片黄在线观看| 国产午夜亚洲精品不卡| 久久成人精品无人区| 欧美网站一区二区| 国产精品美女www爽爽爽| 老司机午夜精品99久久| 精品视频1区2区| 亚洲精品综合在线| 成人免费视频网站在线观看| 欧美大尺度电影在线| 五月天激情小说综合| 欧美伊人久久大香线蕉综合69| 国产精品麻豆网站| 成人久久视频在线观看| 久久久久久电影| 精品伊人久久久久7777人| 717成人午夜免费福利电影| 亚洲精选视频免费看| 9i看片成人免费高清| 国产精品久久久久久久久免费樱桃 | 久久电影网站中文字幕| 91精品婷婷国产综合久久竹菊| 亚洲香肠在线观看| 日本高清不卡视频| 亚洲欧美电影院| 91久久久免费一区二区| 自拍av一区二区三区| 91天堂素人约啪| 亚洲六月丁香色婷婷综合久久| 白白色亚洲国产精品| 最新高清无码专区| 色综合一个色综合亚洲| 亚洲激情第一区| 中文字幕av一区 二区| 国产成人精品三级麻豆| 国产精品系列在线| 国产乱人伦偷精品视频免下载| 久久亚区不卡日本| 国产91露脸合集magnet| 中文av一区二区| av欧美精品.com| 一区二区三区精品在线| 欧美日韩精品一区二区三区四区| 天天色综合成人网| 欧美videofree性高清杂交| 国内成人自拍视频| 国产精品福利一区| 欧美视频在线一区| 奇米影视一区二区三区| 精品国产乱子伦一区| 成人激情视频网站| 亚洲一区二区在线观看视频 | 欧美一区二区女人| 国内精品久久久久影院一蜜桃| 国产欧美一区二区精品仙草咪 | 在线观看亚洲精品| 视频一区二区不卡| 久久久美女艺术照精彩视频福利播放| 粉嫩av一区二区三区粉嫩| 亚洲免费电影在线| 日韩一区二区在线看| 成人激情小说乱人伦| 亚洲成年人网站在线观看|