⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sha1old.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   SHA1Old.java

package org.gudy.azureus2.core3.util.test;

import java.nio.ByteBuffer;

public final class SHA1Old
{

	private int h0;
	private int h1;
	private int h2;
	private int h3;
	private int h4;
	private ByteBuffer finalBuffer;
	private ByteBuffer saveBuffer;
	private int s0;
	private int s1;
	private int s2;
	private int s3;
	private int s4;
	long length;
	long saveLength;

	public SHA1Old()
	{
		finalBuffer = ByteBuffer.allocate(64);
		finalBuffer.position(0);
		finalBuffer.limit(64);
		saveBuffer = ByteBuffer.allocate(64);
		saveBuffer.position(0);
		saveBuffer.limit(64);
		reset();
	}

	private void transform(ByteBuffer M)
	{
		int w0 = M.getInt();
		int w1 = M.getInt();
		int w2 = M.getInt();
		int w3 = M.getInt();
		int w4 = M.getInt();
		int w5 = M.getInt();
		int w6 = M.getInt();
		int w7 = M.getInt();
		int w8 = M.getInt();
		int w9 = M.getInt();
		int w10 = M.getInt();
		int w11 = M.getInt();
		int w12 = M.getInt();
		int w13 = M.getInt();
		int w14 = M.getInt();
		int w15 = M.getInt();
		int a = h0;
		int b = h1;
		int c = h2;
		int d = h3;
		int e = h4;
		e += (a << 5 | a >>> 27) + w0 + (b & c | ~b & d) + 0x5a827999;
		b = b << 30 | b >>> 2;
		d += (e << 5 | e >>> 27) + w1 + (a & b | ~a & c) + 0x5a827999;
		a = a << 30 | a >>> 2;
		c += (d << 5 | d >>> 27) + w2 + (e & a | ~e & b) + 0x5a827999;
		e = e << 30 | e >>> 2;
		b += (c << 5 | c >>> 27) + w3 + (d & e | ~d & a) + 0x5a827999;
		d = d << 30 | d >>> 2;
		a += (b << 5 | b >>> 27) + w4 + (c & d | ~c & e) + 0x5a827999;
		c = c << 30 | c >>> 2;
		e += (a << 5 | a >>> 27) + w5 + (b & c | ~b & d) + 0x5a827999;
		b = b << 30 | b >>> 2;
		d += (e << 5 | e >>> 27) + w6 + (a & b | ~a & c) + 0x5a827999;
		a = a << 30 | a >>> 2;
		c += (d << 5 | d >>> 27) + w7 + (e & a | ~e & b) + 0x5a827999;
		e = e << 30 | e >>> 2;
		b += (c << 5 | c >>> 27) + w8 + (d & e | ~d & a) + 0x5a827999;
		d = d << 30 | d >>> 2;
		a += (b << 5 | b >>> 27) + w9 + (c & d | ~c & e) + 0x5a827999;
		c = c << 30 | c >>> 2;
		e += (a << 5 | a >>> 27) + w10 + (b & c | ~b & d) + 0x5a827999;
		b = b << 30 | b >>> 2;
		d += (e << 5 | e >>> 27) + w11 + (a & b | ~a & c) + 0x5a827999;
		a = a << 30 | a >>> 2;
		c += (d << 5 | d >>> 27) + w12 + (e & a | ~e & b) + 0x5a827999;
		e = e << 30 | e >>> 2;
		b += (c << 5 | c >>> 27) + w13 + (d & e | ~d & a) + 0x5a827999;
		d = d << 30 | d >>> 2;
		a += (b << 5 | b >>> 27) + w14 + (c & d | ~c & e) + 0x5a827999;
		c = c << 30 | c >>> 2;
		e += (a << 5 | a >>> 27) + w15 + (b & c | ~b & d) + 0x5a827999;
		b = b << 30 | b >>> 2;
		w0 = w13 ^ w8 ^ w2 ^ w0;
		w0 = w0 << 1 | w0 >>> 31;
		d += (e << 5 | e >>> 27) + w0 + (a & b | ~a & c) + 0x5a827999;
		a = a << 30 | a >>> 2;
		w1 = w14 ^ w9 ^ w3 ^ w1;
		w1 = w1 << 1 | w1 >>> 31;
		c += (d << 5 | d >>> 27) + w1 + (e & a | ~e & b) + 0x5a827999;
		e = e << 30 | e >>> 2;
		w2 = w15 ^ w10 ^ w4 ^ w2;
		w2 = w2 << 1 | w2 >>> 31;
		b += (c << 5 | c >>> 27) + w2 + (d & e | ~d & a) + 0x5a827999;
		d = d << 30 | d >>> 2;
		w3 = w0 ^ w11 ^ w5 ^ w3;
		w3 = w3 << 1 | w3 >>> 31;
		a += (b << 5 | b >>> 27) + w3 + (c & d | ~c & e) + 0x5a827999;
		c = c << 30 | c >>> 2;
		w4 = w1 ^ w12 ^ w6 ^ w4;
		w4 = w4 << 1 | w4 >>> 31;
		e += (a << 5 | a >>> 27) + w4 + (b ^ c ^ d) + 0x6ed9eba1;
		b = b << 30 | b >>> 2;
		w5 = w2 ^ w13 ^ w7 ^ w5;
		w5 = w5 << 1 | w5 >>> 31;
		d += (e << 5 | e >>> 27) + w5 + (a ^ b ^ c) + 0x6ed9eba1;
		a = a << 30 | a >>> 2;
		w6 = w3 ^ w14 ^ w8 ^ w6;
		w6 = w6 << 1 | w6 >>> 31;
		c += (d << 5 | d >>> 27) + w6 + (e ^ a ^ b) + 0x6ed9eba1;
		e = e << 30 | e >>> 2;
		w7 = w4 ^ w15 ^ w9 ^ w7;
		w7 = w7 << 1 | w7 >>> 31;
		b += (c << 5 | c >>> 27) + w7 + (d ^ e ^ a) + 0x6ed9eba1;
		d = d << 30 | d >>> 2;
		w8 = w5 ^ w0 ^ w10 ^ w8;
		w8 = w8 << 1 | w8 >>> 31;
		a += (b << 5 | b >>> 27) + w8 + (c ^ d ^ e) + 0x6ed9eba1;
		c = c << 30 | c >>> 2;
		w9 = w6 ^ w1 ^ w11 ^ w9;
		w9 = w9 << 1 | w9 >>> 31;
		e += (a << 5 | a >>> 27) + w9 + (b ^ c ^ d) + 0x6ed9eba1;
		b = b << 30 | b >>> 2;
		w10 = w7 ^ w2 ^ w12 ^ w10;
		w10 = w10 << 1 | w10 >>> 31;
		d += (e << 5 | e >>> 27) + w10 + (a ^ b ^ c) + 0x6ed9eba1;
		a = a << 30 | a >>> 2;
		w11 = w8 ^ w3 ^ w13 ^ w11;
		w11 = w11 << 1 | w11 >>> 31;
		c += (d << 5 | d >>> 27) + w11 + (e ^ a ^ b) + 0x6ed9eba1;
		e = e << 30 | e >>> 2;
		w12 = w9 ^ w4 ^ w14 ^ w12;
		w12 = w12 << 1 | w12 >>> 31;
		b += (c << 5 | c >>> 27) + w12 + (d ^ e ^ a) + 0x6ed9eba1;
		d = d << 30 | d >>> 2;
		w13 = w10 ^ w5 ^ w15 ^ w13;
		w13 = w13 << 1 | w13 >>> 31;
		a += (b << 5 | b >>> 27) + w13 + (c ^ d ^ e) + 0x6ed9eba1;
		c = c << 30 | c >>> 2;
		w14 = w11 ^ w6 ^ w0 ^ w14;
		w14 = w14 << 1 | w14 >>> 31;
		e += (a << 5 | a >>> 27) + w14 + (b ^ c ^ d) + 0x6ed9eba1;
		b = b << 30 | b >>> 2;
		w15 = w12 ^ w7 ^ w1 ^ w15;
		w15 = w15 << 1 | w15 >>> 31;
		d += (e << 5 | e >>> 27) + w15 + (a ^ b ^ c) + 0x6ed9eba1;
		a = a << 30 | a >>> 2;
		w0 = w13 ^ w8 ^ w2 ^ w0;
		w0 = w0 << 1 | w0 >>> 31;
		c += (d << 5 | d >>> 27) + w0 + (e ^ a ^ b) + 0x6ed9eba1;
		e = e << 30 | e >>> 2;
		w1 = w14 ^ w9 ^ w3 ^ w1;
		w1 = w1 << 1 | w1 >>> 31;
		b += (c << 5 | c >>> 27) + w1 + (d ^ e ^ a) + 0x6ed9eba1;
		d = d << 30 | d >>> 2;
		w2 = w15 ^ w10 ^ w4 ^ w2;
		w2 = w2 << 1 | w2 >>> 31;
		a += (b << 5 | b >>> 27) + w2 + (c ^ d ^ e) + 0x6ed9eba1;
		c = c << 30 | c >>> 2;
		w3 = w0 ^ w11 ^ w5 ^ w3;
		w3 = w3 << 1 | w3 >>> 31;
		e += (a << 5 | a >>> 27) + w3 + (b ^ c ^ d) + 0x6ed9eba1;
		b = b << 30 | b >>> 2;
		w4 = w1 ^ w12 ^ w6 ^ w4;
		w4 = w4 << 1 | w4 >>> 31;
		d += (e << 5 | e >>> 27) + w4 + (a ^ b ^ c) + 0x6ed9eba1;
		a = a << 30 | a >>> 2;
		w5 = w2 ^ w13 ^ w7 ^ w5;
		w5 = w5 << 1 | w5 >>> 31;
		c += (d << 5 | d >>> 27) + w5 + (e ^ a ^ b) + 0x6ed9eba1;
		e = e << 30 | e >>> 2;
		w6 = w3 ^ w14 ^ w8 ^ w6;
		w6 = w6 << 1 | w6 >>> 31;
		b += (c << 5 | c >>> 27) + w6 + (d ^ e ^ a) + 0x6ed9eba1;
		d = d << 30 | d >>> 2;
		w7 = w4 ^ w15 ^ w9 ^ w7;
		w7 = w7 << 1 | w7 >>> 31;
		a += (b << 5 | b >>> 27) + w7 + (c ^ d ^ e) + 0x6ed9eba1;
		c = c << 30 | c >>> 2;
		w8 = w5 ^ w0 ^ w10 ^ w8;
		w8 = w8 << 1 | w8 >>> 31;
		e += (a << 5 | a >>> 27) + w8 + (b & c | b & d | c & d) + 0x8f1bbcdc;
		b = b << 30 | b >>> 2;
		w9 = w6 ^ w1 ^ w11 ^ w9;
		w9 = w9 << 1 | w9 >>> 31;
		d += (e << 5 | e >>> 27) + w9 + (a & b | a & c | b & c) + 0x8f1bbcdc;
		a = a << 30 | a >>> 2;
		w10 = w7 ^ w2 ^ w12 ^ w10;
		w10 = w10 << 1 | w10 >>> 31;
		c += (d << 5 | d >>> 27) + w10 + (e & a | e & b | a & b) + 0x8f1bbcdc;
		e = e << 30 | e >>> 2;
		w11 = w8 ^ w3 ^ w13 ^ w11;
		w11 = w11 << 1 | w11 >>> 31;
		b += (c << 5 | c >>> 27) + w11 + (d & e | d & a | e & a) + 0x8f1bbcdc;
		d = d << 30 | d >>> 2;
		w12 = w9 ^ w4 ^ w14 ^ w12;
		w12 = w12 << 1 | w12 >>> 31;
		a += (b << 5 | b >>> 27) + w12 + (c & d | c & e | d & e) + 0x8f1bbcdc;
		c = c << 30 | c >>> 2;
		w13 = w10 ^ w5 ^ w15 ^ w13;
		w13 = w13 << 1 | w13 >>> 31;
		e += (a << 5 | a >>> 27) + w13 + (b & c | b & d | c & d) + 0x8f1bbcdc;
		b = b << 30 | b >>> 2;
		w14 = w11 ^ w6 ^ w0 ^ w14;
		w14 = w14 << 1 | w14 >>> 31;
		d += (e << 5 | e >>> 27) + w14 + (a & b | a & c | b & c) + 0x8f1bbcdc;
		a = a << 30 | a >>> 2;
		w15 = w12 ^ w7 ^ w1 ^ w15;
		w15 = w15 << 1 | w15 >>> 31;
		c += (d << 5 | d >>> 27) + w15 + (e & a | e & b | a & b) + 0x8f1bbcdc;
		e = e << 30 | e >>> 2;
		w0 = w13 ^ w8 ^ w2 ^ w0;
		w0 = w0 << 1 | w0 >>> 31;
		b += (c << 5 | c >>> 27) + w0 + (d & e | d & a | e & a) + 0x8f1bbcdc;
		d = d << 30 | d >>> 2;
		w1 = w14 ^ w9 ^ w3 ^ w1;
		w1 = w1 << 1 | w1 >>> 31;
		a += (b << 5 | b >>> 27) + w1 + (c & d | c & e | d & e) + 0x8f1bbcdc;
		c = c << 30 | c >>> 2;
		w2 = w15 ^ w10 ^ w4 ^ w2;
		w2 = w2 << 1 | w2 >>> 31;
		e += (a << 5 | a >>> 27) + w2 + (b & c | b & d | c & d) + 0x8f1bbcdc;
		b = b << 30 | b >>> 2;
		w3 = w0 ^ w11 ^ w5 ^ w3;
		w3 = w3 << 1 | w3 >>> 31;
		d += (e << 5 | e >>> 27) + w3 + (a & b | a & c | b & c) + 0x8f1bbcdc;
		a = a << 30 | a >>> 2;
		w4 = w1 ^ w12 ^ w6 ^ w4;
		w4 = w4 << 1 | w4 >>> 31;
		c += (d << 5 | d >>> 27) + w4 + (e & a | e & b | a & b) + 0x8f1bbcdc;
		e = e << 30 | e >>> 2;
		w5 = w2 ^ w13 ^ w7 ^ w5;
		w5 = w5 << 1 | w5 >>> 31;
		b += (c << 5 | c >>> 27) + w5 + (d & e | d & a | e & a) + 0x8f1bbcdc;
		d = d << 30 | d >>> 2;
		w6 = w3 ^ w14 ^ w8 ^ w6;
		w6 = w6 << 1 | w6 >>> 31;
		a += (b << 5 | b >>> 27) + w6 + (c & d | c & e | d & e) + 0x8f1bbcdc;
		c = c << 30 | c >>> 2;
		w7 = w4 ^ w15 ^ w9 ^ w7;
		w7 = w7 << 1 | w7 >>> 31;
		e += (a << 5 | a >>> 27) + w7 + (b & c | b & d | c & d) + 0x8f1bbcdc;
		b = b << 30 | b >>> 2;
		w8 = w5 ^ w0 ^ w10 ^ w8;
		w8 = w8 << 1 | w8 >>> 31;
		d += (e << 5 | e >>> 27) + w8 + (a & b | a & c | b & c) + 0x8f1bbcdc;
		a = a << 30 | a >>> 2;
		w9 = w6 ^ w1 ^ w11 ^ w9;
		w9 = w9 << 1 | w9 >>> 31;
		c += (d << 5 | d >>> 27) + w9 + (e & a | e & b | a & b) + 0x8f1bbcdc;
		e = e << 30 | e >>> 2;
		w10 = w7 ^ w2 ^ w12 ^ w10;
		w10 = w10 << 1 | w10 >>> 31;
		b += (c << 5 | c >>> 27) + w10 + (d & e | d & a | e & a) + 0x8f1bbcdc;
		d = d << 30 | d >>> 2;
		w11 = w8 ^ w3 ^ w13 ^ w11;
		w11 = w11 << 1 | w11 >>> 31;
		a += (b << 5 | b >>> 27) + w11 + (c & d | c & e | d & e) + 0x8f1bbcdc;
		c = c << 30 | c >>> 2;
		w12 = w9 ^ w4 ^ w14 ^ w12;
		w12 = w12 << 1 | w12 >>> 31;
		e += (a << 5 | a >>> 27) + w12 + (b ^ c ^ d) + 0xca62c1d6;
		b = b << 30 | b >>> 2;
		w13 = w10 ^ w5 ^ w15 ^ w13;
		w13 = w13 << 1 | w13 >>> 31;
		d += (e << 5 | e >>> 27) + w13 + (a ^ b ^ c) + 0xca62c1d6;
		a = a << 30 | a >>> 2;
		w14 = w11 ^ w6 ^ w0 ^ w14;
		w14 = w14 << 1 | w14 >>> 31;
		c += (d << 5 | d >>> 27) + w14 + (e ^ a ^ b) + 0xca62c1d6;
		e = e << 30 | e >>> 2;
		w15 = w12 ^ w7 ^ w1 ^ w15;
		w15 = w15 << 1 | w15 >>> 31;
		b += (c << 5 | c >>> 27) + w15 + (d ^ e ^ a) + 0xca62c1d6;
		d = d << 30 | d >>> 2;
		w0 = w13 ^ w8 ^ w2 ^ w0;
		w0 = w0 << 1 | w0 >>> 31;
		a += (b << 5 | b >>> 27) + w0 + (c ^ d ^ e) + 0xca62c1d6;
		c = c << 30 | c >>> 2;
		w1 = w14 ^ w9 ^ w3 ^ w1;
		w1 = w1 << 1 | w1 >>> 31;
		e += (a << 5 | a >>> 27) + w1 + (b ^ c ^ d) + 0xca62c1d6;
		b = b << 30 | b >>> 2;
		w2 = w15 ^ w10 ^ w4 ^ w2;
		w2 = w2 << 1 | w2 >>> 31;
		d += (e << 5 | e >>> 27) + w2 + (a ^ b ^ c) + 0xca62c1d6;
		a = a << 30 | a >>> 2;
		w3 = w0 ^ w11 ^ w5 ^ w3;
		w3 = w3 << 1 | w3 >>> 31;
		c += (d << 5 | d >>> 27) + w3 + (e ^ a ^ b) + 0xca62c1d6;
		e = e << 30 | e >>> 2;
		w4 = w1 ^ w12 ^ w6 ^ w4;
		w4 = w4 << 1 | w4 >>> 31;
		b += (c << 5 | c >>> 27) + w4 + (d ^ e ^ a) + 0xca62c1d6;
		d = d << 30 | d >>> 2;
		w5 = w2 ^ w13 ^ w7 ^ w5;
		w5 = w5 << 1 | w5 >>> 31;
		a += (b << 5 | b >>> 27) + w5 + (c ^ d ^ e) + 0xca62c1d6;
		c = c << 30 | c >>> 2;
		w6 = w3 ^ w14 ^ w8 ^ w6;
		w6 = w6 << 1 | w6 >>> 31;
		e += (a << 5 | a >>> 27) + w6 + (b ^ c ^ d) + 0xca62c1d6;
		b = b << 30 | b >>> 2;
		w7 = w4 ^ w15 ^ w9 ^ w7;
		w7 = w7 << 1 | w7 >>> 31;
		d += (e << 5 | e >>> 27) + w7 + (a ^ b ^ c) + 0xca62c1d6;
		a = a << 30 | a >>> 2;
		w8 = w5 ^ w0 ^ w10 ^ w8;
		w8 = w8 << 1 | w8 >>> 31;
		c += (d << 5 | d >>> 27) + w8 + (e ^ a ^ b) + 0xca62c1d6;
		e = e << 30 | e >>> 2;
		w9 = w6 ^ w1 ^ w11 ^ w9;
		w9 = w9 << 1 | w9 >>> 31;
		b += (c << 5 | c >>> 27) + w9 + (d ^ e ^ a) + 0xca62c1d6;
		d = d << 30 | d >>> 2;
		w10 = w7 ^ w2 ^ w12 ^ w10;
		w10 = w10 << 1 | w10 >>> 31;
		a += (b << 5 | b >>> 27) + w10 + (c ^ d ^ e) + 0xca62c1d6;
		c = c << 30 | c >>> 2;
		w11 = w8 ^ w3 ^ w13 ^ w11;
		w11 = w11 << 1 | w11 >>> 31;
		e += (a << 5 | a >>> 27) + w11 + (b ^ c ^ d) + 0xca62c1d6;
		b = b << 30 | b >>> 2;
		w12 = w9 ^ w4 ^ w14 ^ w12;
		w12 = w12 << 1 | w12 >>> 31;
		d += (e << 5 | e >>> 27) + w12 + (a ^ b ^ c) + 0xca62c1d6;
		a = a << 30 | a >>> 2;
		w13 = w10 ^ w5 ^ w15 ^ w13;
		w13 = w13 << 1 | w13 >>> 31;
		c += (d << 5 | d >>> 27) + w13 + (e ^ a ^ b) + 0xca62c1d6;
		e = e << 30 | e >>> 2;
		w14 = w11 ^ w6 ^ w0 ^ w14;
		w14 = w14 << 1 | w14 >>> 31;
		b += (c << 5 | c >>> 27) + w14 + (d ^ e ^ a) + 0xca62c1d6;
		d = d << 30 | d >>> 2;
		w15 = w12 ^ w7 ^ w1 ^ w15;
		w15 = w15 << 1 | w15 >>> 31;
		a += (b << 5 | b >>> 27) + w15 + (c ^ d ^ e) + 0xca62c1d6;
		c = c << 30 | c >>> 2;
		h0 += a;
		h1 += b;
		h2 += c;
		h3 += d;
		h4 += e;
	}

	private void completeFinalBuffer(ByteBuffer buffer)
	{
		if (finalBuffer.position() == 0)
			return;
		for (; buffer.remaining() > 0 && finalBuffer.remaining() > 0; finalBuffer.put(buffer.get()));
		if (finalBuffer.remaining() == 0)
		{
			finalBuffer.position(0);
			transform(finalBuffer);
			finalBuffer.position(0);
		}
	}

	public void reset()
	{
		h0 = 0x67452301;
		h1 = 0xefcdab89;
		h2 = 0x98badcfe;
		h3 = 0x10325476;
		h4 = 0xc3d2e1f0;
		length = 0L;
		finalBuffer.clear();
	}

	public void update(ByteBuffer buffer)
	{
		length += buffer.remaining();
		int position = buffer.position();
		completeFinalBuffer(buffer);
		for (; buffer.remaining() >= 64; transform(buffer));
		if (buffer.remaining() != 0)
			finalBuffer.put(buffer);
		buffer.position(position);
	}

	public byte[] digest()
	{
		byte result[] = new byte[20];
		finalBuffer.put((byte)-128);
		if (finalBuffer.remaining() < 8)
		{
			for (; finalBuffer.remaining() > 0; finalBuffer.put((byte)0));
			finalBuffer.position(0);
			transform(finalBuffer);
			finalBuffer.position(0);
		}
		for (; finalBuffer.remaining() > 8; finalBuffer.put((byte)0));
		finalBuffer.putLong(length << 3);
		finalBuffer.position(0);
		transform(finalBuffer);
		finalBuffer.position(0);
		finalBuffer.putInt(h0);
		finalBuffer.putInt(h1);
		finalBuffer.putInt(h2);
		finalBuffer.putInt(h3);
		finalBuffer.putInt(h4);
		finalBuffer.position(0);
		for (int i = 0; i < 20; i++)
			result[i] = finalBuffer.get();

		return result;
	}

	public byte[] digest(ByteBuffer buffer)
	{
		update(buffer);
		return digest();
	}

	public void saveState()
	{
		s0 = h0;
		s1 = h1;
		s2 = h2;
		s3 = h3;
		s4 = h4;
		saveLength = length;
		int position = finalBuffer.position();
		finalBuffer.position(0);
		finalBuffer.limit(position);
		saveBuffer.clear();
		saveBuffer.put(finalBuffer);
		saveBuffer.flip();
		finalBuffer.limit(64);
		finalBuffer.position(position);
	}

	public void restoreState()
	{
		h0 = s0;
		h1 = s1;
		h2 = s2;
		h3 = s3;
		h4 = s4;
		length = saveLength;
		finalBuffer.clear();
		finalBuffer.put(saveBuffer);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -