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

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

?? sha1digest.java

?? 這是我模仿window自帶的小游戲掃雷編的,很簡單,只實(shí)現(xiàn)了掃雷的基本功能,現(xiàn)拿出來與大家分享!
?? JAVA
字號:
package org.bouncycastle.crypto.digests;


/**
 * implementation of SHA-1 as outlined in "Handbook of Applied Cryptography", pages 346 - 349.
 *
 * It is interesting to ponder why the, apart from the extra IV, the other difference here from MD5
 * is the "endienness" of the word processing!
 */
public class SHA1Digest
    extends GeneralDigest
{
    private static final int    DIGEST_LENGTH = 20;

    private int     H1, H2, H3, H4, H5;

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

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

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

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

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

    public String getAlgorithmName()
    {
        return "SHA-1";
    }

    public int getDigestSize()
    {
        return DIGEST_LENGTH;
    }

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

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

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

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

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

    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);
        unpackWord(H5, out, outOff + 16);

        reset();

        return DIGEST_LENGTH;
    }

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

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

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

    //
    // Additive constants
    //
    private static final int    Y1 = 0x5a827999;
    private static final int    Y2 = 0x6ed9eba1;
    private static final int    Y3 = 0x8f1bbcdc;
    private static final int    Y4 = 0xca62c1d6;

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

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

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

    private int rotateLeft(
        int    x,
        int    n)
    {
        return (x << n) | (x >>> (32 - n));
    }

    protected void processBlock()
    {
        //
        // expand 16 word block into 80 word block.
        //
        for (int i = 16; i <= 79; i++)
        {
            X[i] = rotateLeft((X[i - 3] ^ X[i - 8] ^ X[i - 14] ^ X[i - 16]), 1);
        }

        //
        // set up working variables.
        //
        int     A = H1;
        int     B = H2;
        int     C = H3;
        int     D = H4;
        int     E = H5;

        //
        // round 1
        //
        for (int j = 0; j <= 19; j++)
        {
            int     t = rotateLeft(A, 5) + f(B, C, D) + E + X[j] + Y1;

            E = D;
            D = C;
            C = rotateLeft(B, 30);
            B = A;
            A = t;
        }

        //
        // round 2
        //
        for (int j = 20; j <= 39; j++)
        {
            int     t = rotateLeft(A, 5) + h(B, C, D) + E + X[j] + Y2;

            E = D;
            D = C;
            C = rotateLeft(B, 30);
            B = A;
            A = t;
        }

        //
        // round 3
        //
        for (int j = 40; j <= 59; j++)
        {
            int     t = rotateLeft(A, 5) + g(B, C, D) + E + X[j] + Y3;

            E = D;
            D = C;
            C = rotateLeft(B, 30);
            B = A;
            A = t;
        }

        //
        // round 4
        //
        for (int j = 60; j <= 79; j++)
        {
            int     t = rotateLeft(A, 5) + h(B, C, D) + E + X[j] + Y4;

            E = D;
            D = C;
            C = rotateLeft(B, 30);
            B = A;
            A = t;
        }

        H1 += A;
        H2 += B;
        H3 += C;
        H4 += D;
        H5 += E;

        //
        // 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一区二区三区免费野_久草精品视频
国产精品午夜春色av| 午夜激情综合网| 精品视频在线免费看| 亚洲午夜羞羞片| 一区二区三区在线看| 石原莉奈在线亚洲二区| 91极品美女在线| 91女厕偷拍女厕偷拍高清| 国产一区二区三区美女| 国内不卡的二区三区中文字幕 | 欧美色精品在线视频| 91网站在线播放| 色8久久人人97超碰香蕉987| 91色.com| 成人激情免费网站| 久久亚洲综合色| 三级欧美在线一区| 一区二区在线观看视频| 亚洲裸体xxx| 亚洲成人免费在线观看| 日韩在线播放一区二区| 黄色日韩网站视频| 丁香婷婷综合网| 日本道在线观看一区二区| 欧美一区三区四区| 国产午夜一区二区三区| 一区二区三区在线免费| 免费观看久久久4p| av在线不卡电影| 91.成人天堂一区| 久久久精品tv| 亚洲一区在线观看免费 | 成人动漫视频在线| 久久久久国产精品免费免费搜索| 午夜精品久久久久久不卡8050| 欧美日本视频在线| 日韩欧美成人午夜| 中文字幕一区二区三| 日本少妇一区二区| 成人在线视频一区| 5月丁香婷婷综合| 亚洲欧美偷拍卡通变态| 午夜精品久久久久久久久久| 国产a级毛片一区| 欧美日韩国产一级二级| 国产精品乱码久久久久久| 午夜av一区二区三区| 国产福利精品一区| 欧美一区二区三区喷汁尤物| 亚洲四区在线观看| 国产在线麻豆精品观看| 欧美男生操女生| 欧美区一区二区三区| 国产午夜精品一区二区三区四区| 亚洲欧洲韩国日本视频| 紧缚捆绑精品一区二区| 正在播放亚洲一区| 亚洲一区二区三区四区中文字幕 | 在线精品视频小说1| 日韩欧美亚洲国产精品字幕久久久| 亚洲激情五月婷婷| 国产aⅴ精品一区二区三区色成熟| 欧美电影在哪看比较好| 一区二区三区波多野结衣在线观看 | 欧美成人aa大片| 亚洲国产精品自拍| 在线观看国产一区二区| 亚洲精品视频一区| av一二三不卡影片| 欧美国产精品专区| 中文字幕在线观看不卡| av在线不卡网| 国产精品成人免费| 亚洲精品乱码久久久久久黑人| 狠狠色丁香婷婷综合| 日韩一级黄色片| 天天做天天摸天天爽国产一区| 欧美日韩在线播放三区| 亚洲综合区在线| 欧美系列日韩一区| 亚洲成人精品在线观看| 欧美日韩高清一区二区三区| 亚洲图片欧美一区| 欧美一区二区三区啪啪| 日本伊人色综合网| 日韩欧美精品在线| 狠狠色狠狠色综合| 国产精品精品国产色婷婷| 91麻豆自制传媒国产之光| 一区二区三区在线视频观看| 91精品91久久久中77777| 久久久久久久综合日本| 亚洲精品一区二区三区在线观看 | 伊人色综合久久天天| 97se亚洲国产综合自在线| 亚洲蜜桃精久久久久久久| 欧美性一区二区| 日韩av在线免费观看不卡| 欧美精品一区二区三区一线天视频| 精品一区二区三区在线播放视频| 国产婷婷精品av在线| 成人一级视频在线观看| 一区二区激情小说| 日韩三级av在线播放| 国产成人在线观看免费网站| 亚洲精选在线视频| 欧美一区二区播放| 成人av在线一区二区三区| 一区二区高清在线| 久久婷婷国产综合精品青草| 99精品视频在线播放观看| 亚洲第一福利一区| 中文字幕精品—区二区四季| 欧美在线三级电影| 国产一区福利在线| 亚洲一区二区五区| 国产亚洲成aⅴ人片在线观看| 在线观看三级视频欧美| 国产一区二区三区在线观看精品| 亚洲伦在线观看| 久久亚洲一区二区三区明星换脸| 色综合久久中文综合久久97| 激情成人午夜视频| 亚洲成人综合网站| 国产精品欧美一级免费| 日韩小视频在线观看专区| 91免费国产在线| 国内精品国产成人国产三级粉色| 亚洲丶国产丶欧美一区二区三区| 国产婷婷精品av在线| 日韩视频在线观看一区二区| 欧美天堂亚洲电影院在线播放| 国产suv精品一区二区三区| 日韩精品一区第一页| 亚洲自拍另类综合| 亚洲欧洲精品天堂一级 | 亚洲视频在线一区二区| 久久亚洲一级片| 日韩欧美一区二区久久婷婷| 欧美日韩视频第一区| 99re66热这里只有精品3直播| 国产精品一二三在| 国产麻豆视频精品| 国产一区视频网站| 国产麻豆欧美日韩一区| 黄色资源网久久资源365| 久久精品噜噜噜成人88aⅴ| 香蕉影视欧美成人| 丝袜美腿亚洲色图| 亚洲成国产人片在线观看| 亚洲另类在线视频| 亚洲精品视频在线观看免费 | 欧美三级午夜理伦三级中视频| 成人久久18免费网站麻豆| 国产精品自拍在线| 懂色av一区二区在线播放| 国产露脸91国语对白| 国产成人精品免费网站| 国产乱码精品一区二区三区五月婷| 蜜桃久久精品一区二区| 狠狠网亚洲精品| 国产精品综合二区| 成人听书哪个软件好| 99久久99久久综合| 欧洲色大大久久| 欧美日韩一区在线| 欧美大白屁股肥臀xxxxxx| 久久免费偷拍视频| 欧美激情一区二区三区全黄| 中文字幕一区二区三区蜜月 | 日韩精品91亚洲二区在线观看| 亚洲一区二区在线播放相泽 | 欧美极品xxx| 国产精品伦理在线| 亚洲综合免费观看高清完整版 | 国产乱子轮精品视频| 国产1区2区3区精品美女| 99久久精品免费精品国产| 在线精品观看国产| 欧美成va人片在线观看| 国产清纯白嫩初高生在线观看91| 亚洲欧美一区二区在线观看| 国产精品美女视频| 国产午夜精品美女毛片视频| 国产喷白浆一区二区三区| 中文字幕字幕中文在线中不卡视频| 亚洲女爱视频在线| 美女精品一区二区| av一区二区不卡| 欧美一二区视频| 日韩码欧中文字| 久久精品久久精品| 色综合中文字幕国产 | 91日韩精品一区| 欧美日韩精品一区视频| 久久免费电影网| 爽爽淫人综合网网站| 成人免费精品视频| 精品少妇一区二区三区免费观看| 国产精品区一区二区三区|