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

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

?? md5digest.java

?? 這是我模仿window自帶的小游戲掃雷編的,很簡單,只實現了掃雷的基本功能,現拿出來與大家分享!
?? 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一区二区三区免费野_久草精品视频
亚洲精品久久7777| 亚洲第一电影网| 欧美三日本三级三级在线播放| 免费观看久久久4p| 欧美国产综合一区二区| 7777精品伊人久久久大香线蕉最新版| 国产精品亚洲视频| 免费观看一级特黄欧美大片| 亚洲视频一区二区在线观看| 欧美精品一区二区三区一线天视频| 99re热视频这里只精品| 国产一区二区三区四区在线观看| 一二三区精品福利视频| 中文字幕乱码日本亚洲一区二区| 欧美高清视频不卡网| 成人毛片在线观看| 国产精品乡下勾搭老头1| 麻豆中文一区二区| 午夜欧美在线一二页| 中文字幕日韩一区二区| 2019国产精品| 日韩精品中文字幕在线不卡尤物 | 亚洲成a人片在线观看中文| 国产欧美日韩在线| 2021久久国产精品不只是精品| 欧美喷潮久久久xxxxx| 欧美又粗又大又爽| 91美女在线看| 色婷婷国产精品综合在线观看| 粉嫩av亚洲一区二区图片| 国产成人精品网址| 国产精品1区2区3区| 久久se精品一区二区| 蜜臀久久99精品久久久久久9| 亚洲第一在线综合网站| 一区二区三区精品视频在线| 亚洲欧美偷拍卡通变态| 国产精品高潮久久久久无| 亚洲国产精品ⅴa在线观看| 久久综合久久综合久久综合| 欧美成人三级在线| 精品国产凹凸成av人网站| 精品国产凹凸成av人网站| 精品国产凹凸成av人导航| 日韩写真欧美这视频| 精品国精品自拍自在线| 亚洲精品在线免费播放| 国产亚洲一区字幕| 日本一区二区三区四区| 亚洲欧洲国产专区| 自拍偷在线精品自拍偷无码专区| 最近中文字幕一区二区三区| 亚洲卡通欧美制服中文| 亚洲chinese男男1069| 午夜精品在线视频一区| 美女任你摸久久| 韩国av一区二区三区| 国产成人午夜99999| 一本久久a久久精品亚洲| 欧美探花视频资源| 日韩欧美一级二级三级 | 国产精选一区二区三区| 国产麻豆精品久久一二三| 成人aaaa免费全部观看| 色噜噜狠狠色综合中国| 717成人午夜免费福利电影| 日韩欧美一卡二卡| 国产精品电影院| 亚洲bdsm女犯bdsm网站| 精品无人区卡一卡二卡三乱码免费卡| 国产酒店精品激情| 在线亚洲免费视频| 日韩精品在线一区二区| 国产精品色婷婷久久58| 亚洲电影一级片| 国产一区二区精品久久91| 99久久精品国产麻豆演员表| 91福利在线观看| 精品国产污污免费网站入口| 国产精品毛片久久久久久久| 日韩激情一区二区| 国产白丝精品91爽爽久久 | 99精品视频在线免费观看| 欧美视频一区在线观看| 欧美v日韩v国产v| 亚洲私人黄色宅男| 蜜桃精品视频在线观看| 成人av电影免费在线播放| 欧美精品黑人性xxxx| 久久久精品黄色| 午夜电影久久久| 北岛玲一区二区三区四区| 91精品国产丝袜白色高跟鞋| 中文字幕欧美国产| 美国毛片一区二区三区| 91麻豆精东视频| 久久久噜噜噜久久中文字幕色伊伊 | 五月天丁香久久| 成人黄色网址在线观看| 日韩视频永久免费| 一本色道久久综合狠狠躁的推荐 | 2021久久国产精品不只是精品| 一区二区三区免费| 国产成人免费视频网站| 欧美一区二区三区在线观看| 综合婷婷亚洲小说| 国产a级毛片一区| 日韩精品一区二区三区三区免费| 亚洲精品高清在线观看| 国产成人aaa| 亚洲精品在线一区二区| 天堂va蜜桃一区二区三区 | 7777精品久久久大香线蕉| 成人欧美一区二区三区小说| 激情小说亚洲一区| 欧美一区二区三区的| 亚洲综合视频在线观看| 99麻豆久久久国产精品免费 | 欧美日韩国产美| 国产精品污网站| 国产精品综合av一区二区国产馆| 欧美精品在欧美一区二区少妇| 亚洲精品欧美二区三区中文字幕| 成人免费av在线| 国产欧美一区二区精品性| 久久超碰97中文字幕| 91精品视频网| 日韩成人免费在线| 欧美日韩成人一区二区| 亚洲综合图片区| 欧美中文字幕一区| 一区二区在线看| 欧美在线你懂的| 亚洲一区在线观看网站| 欧美性猛交xxxx乱大交退制版| 亚洲自拍偷拍欧美| 欧美伊人久久久久久午夜久久久久| 亚洲精品国产无天堂网2021 | 国产一区二区三区| 精品电影一区二区三区| 精品一区二区三区免费毛片爱| 日韩精品专区在线影院观看| 麻豆视频观看网址久久| 精品三级av在线| 狠狠色丁香婷婷综合| 久久综合九色欧美综合狠狠| 国产黄色精品视频| 中文字幕日韩一区| 91久久香蕉国产日韩欧美9色| 亚洲一区二区三区在线播放| 欧美性三三影院| 秋霞电影网一区二区| 久久奇米777| 国产99久久久久| 一区二区三区四区在线免费观看| 在线亚洲欧美专区二区| 亚洲电影在线播放| 精品精品国产高清a毛片牛牛| 国产高清久久久久| 最好看的中文字幕久久| 欧美日韩一区高清| 麻豆国产精品视频| 国产精品免费人成网站| 91色porny在线视频| 日韩在线a电影| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 精品噜噜噜噜久久久久久久久试看| 国内精品不卡在线| 国产精品久久久久久久蜜臀 | 亚洲国产精品ⅴa在线观看| 972aa.com艺术欧美| 图片区小说区区亚洲影院| 久久午夜国产精品| 欧美综合一区二区| 久久精品99久久久| 最新国产の精品合集bt伙计| 欧美一区二区网站| 成人一区二区在线观看| 天天综合网天天综合色| 久久综合色8888| 欧美日韩一区二区三区四区五区 | 91啪在线观看| 麻豆91免费观看| 亚洲天天做日日做天天谢日日欢 | 亚洲免费毛片网站| 日韩一级二级三级| 91在线观看成人| 久久97超碰国产精品超碰| 亚洲免费电影在线| 国产日韩欧美电影| 6080亚洲精品一区二区| 成人av动漫网站| 精品一区二区三区在线观看| 一区二区三区成人| 国产亚洲制服色| 日韩欧美一级在线播放| 欧美系列在线观看| 91网站在线观看视频| 精品影视av免费| 亚洲自拍偷拍欧美|