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

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

?? sha1digest.java

?? JAVA多torrent下載程序P2P源碼 This is a stripped down version of Manfred Duchrows Programmer s Freind class
?? 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电影在线网| 国产精品久久99| 成人在线一区二区三区| 国产日韩成人精品| 国产成人精品免费网站| 久久女同精品一区二区| 午夜天堂影视香蕉久久| 精品视频999| 日韩精品国产精品| 91精品欧美综合在线观看最新| 国产日韩精品久久久| 成人av午夜电影| 欧美不卡一区二区三区| 久久精品国产99| 欧美精品一区二区蜜臀亚洲| 国产在线不卡一卡二卡三卡四卡| 久久色成人在线| 乱中年女人伦av一区二区| 精品国产一区二区三区忘忧草| 日本不卡一区二区三区 | 精品人伦一区二区色婷婷| 免费成人小视频| 欧美精品一区二区三区很污很色的 | 亚洲国产成人精品视频| 欧美综合在线视频| 亚洲成人免费电影| 欧美成人午夜电影| 99视频国产精品| 有码一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 中文在线一区二区| 91在线porny国产在线看| 亚洲精品国产精品乱码不99| 欧美亚洲愉拍一区二区| 首页国产欧美久久| 欧美激情在线一区二区| 欧美一二三区精品| 99久久伊人精品| 国产在线国偷精品免费看| 亚洲www啪成人一区二区麻豆| 精品久久久久久久久久久久包黑料| 97久久人人超碰| 国产一区二区三区在线观看精品 | 久久影视一区二区| 欧美日韩视频第一区| 成人午夜伦理影院| 激情深爱一区二区| 五月天中文字幕一区二区| 国产精品毛片无遮挡高清| 日韩欧美资源站| 欧美日韩亚州综合| 色婷婷综合久久久久中文一区二区 | 一区二区三区日韩精品| 久久九九影视网| 精品国产乱码久久久久久免费| 欧美私模裸体表演在线观看| 成人动漫在线一区| 国产大片一区二区| 经典一区二区三区| 免费不卡在线视频| 蜜桃免费网站一区二区三区 | 日韩成人免费看| 图片区小说区国产精品视频| 一区二区三区免费网站| 亚洲女同一区二区| 亚洲免费在线视频一区 二区| 国产精品国产三级国产a| 国产福利精品一区二区| 国产婷婷色一区二区三区在线| av在线一区二区| 日本少妇一区二区| 日韩在线观看一区二区| 国产999精品久久久久久绿帽| 日韩黄色免费电影| 丝袜美腿成人在线| 日本女优在线视频一区二区| 日韩高清不卡一区| 麻豆视频一区二区| 美女精品自拍一二三四| 激情综合网最新| 黄色资源网久久资源365| 国产乱码精品一区二区三 | 免费在线观看精品| 美女久久久精品| 精品一区二区三区在线观看 | 一本一道久久a久久精品| 99久久精品国产精品久久| 不卡一区中文字幕| 欧美中文字幕一区| 欧美精品一级二级三级| 日韩女优电影在线观看| 精品国产91乱码一区二区三区| 久久伊人中文字幕| 国产精品电影院| 一区二区三区日韩精品视频| 视频一区中文字幕国产| 韩国v欧美v日本v亚洲v| 波多野结衣精品在线| 一本一道波多野结衣一区二区| 欧美日韩mp4| 久久夜色精品国产噜噜av| 国产精品护士白丝一区av| 亚洲精品亚洲人成人网| 石原莉奈在线亚洲三区| 国产精品久久网站| 国产精品国产三级国产三级人妇| 国产日韩精品一区二区三区| 欧美精品一区二区三区蜜桃 | 极品销魂美女一区二区三区| 国产三区在线成人av| 成人av网站在线观看| 欧美极品xxx| 激情综合网av| 色综合久久综合网97色综合| 日韩视频一区二区| 亚洲欧美日韩精品久久久久| 91国偷自产一区二区开放时间| 国产精品美女久久久久aⅴ国产馆| 五月婷婷综合在线| 麻豆成人免费电影| 在线看一区二区| 精品少妇一区二区三区| 国产精品伦理在线| 免费欧美在线视频| 色婷婷av一区二区三区软件| 在线观看免费一区| 日韩一区二区三区在线视频| 亚洲欧美aⅴ...| 色哟哟亚洲精品| 国产人成亚洲第一网站在线播放 | 精品一区二区三区久久| 精品综合久久久久久8888| 色香蕉久久蜜桃| 欧美精品一卡二卡| 中文字幕巨乱亚洲| 不卡一区二区中文字幕| 欧美一区二区三区在线看| 中文一区一区三区高中清不卡| 日本福利一区二区| 国产在线不卡一区| 亚洲一区在线观看网站| 91精品国产91综合久久蜜臀| 黄一区二区三区| 一区二区三区精品视频在线| 欧美精品在线一区二区| 国产在线视视频有精品| 国产精品美女久久久久av爽李琼| 欧亚洲嫩模精品一区三区| 久久精品国产色蜜蜜麻豆| 亚洲人妖av一区二区| 日韩欧美一二三| 欧美三级日韩三级| 国产成人一级电影| 麻豆一区二区在线| 日韩不卡在线观看日韩不卡视频| 国产喂奶挤奶一区二区三区| 欧美精品 国产精品| 成人av电影在线| 成人黄色一级视频| 精品一区二区三区在线观看 | 日韩一区欧美一区| 国产欧美综合在线观看第十页 | 亚洲国产精品欧美一二99| 国产色产综合色产在线视频| 日韩一级片网站| 精品视频一区三区九区| 色猫猫国产区一区二在线视频| 国产制服丝袜一区| 国产在线精品免费| 国产精品亚洲专一区二区三区| 久久狠狠亚洲综合| 国产精品一区三区| 国产美女在线精品| 成人动漫一区二区| 一本一本久久a久久精品综合麻豆| 高清视频一区二区| 日本高清不卡一区| 777亚洲妇女| 国产亚洲婷婷免费| 中文字幕欧美激情一区| 国产精品久久久一本精品| 日韩伦理电影网| 蜜桃av一区二区三区电影| 久久99深爱久久99精品| 丁香婷婷深情五月亚洲| 91福利在线免费观看| 91麻豆精品久久久久蜜臀| 久久久99精品久久| 日本午夜精品视频在线观看| 国产综合色视频| 国内成人免费视频| 狠狠色狠狠色综合系列| 亚洲一区在线电影| 精品一区免费av| 蜜臀av一区二区在线免费观看| 久久久亚洲午夜电影|