📄 sha1.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: SHA1.java
package org.gudy.azureus2.core3.util;
import java.nio.ByteBuffer;
public final class SHA1
{
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;
private long length;
private long saveLength;
private static final int cacheSize = 4096;
private byte cacheBlock[];
public SHA1()
{
finalBuffer = ByteBuffer.allocate(64);
finalBuffer.position(0);
finalBuffer.limit(64);
saveBuffer = ByteBuffer.allocate(64);
saveBuffer.position(0);
saveBuffer.limit(64);
reset();
}
private final void transform(byte ar[], int offset)
{
int w0 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w1 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w2 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w3 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w4 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w5 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w6 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w7 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w8 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w9 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w10 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w11 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w12 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w13 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w14 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset++] & 0xff;
int w15 = (ar[offset++] & 0xff) << 24 | (ar[offset++] & 0xff) << 16 | (ar[offset++] & 0xff) << 8 | ar[offset] & 0xff;
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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -