private String digest(String salt, CharSequence rawPassword) { if (rawPassword == null) { rawPassword = ""; } String saltedPassword = rawPassword + salt; byte[] saltedPasswordBytes = Utf8.encode(saltedPassword); Md4 md4 = new Md4(); md4.update(saltedPasswordBytes, 0, saltedPasswordBytes.length); byte[] digest = md4.digest(); String encoded = encode(digest); return salt + encoded; }
A = FF(A, B, C, D, tmp[0], 3); D = FF(D, A, B, C, tmp[1], 7); C = FF(C, D, A, B, tmp[2], 11); B = FF(B, C, D, A, tmp[3], 19); A = FF(A, B, C, D, tmp[4], 3); D = FF(D, A, B, C, tmp[5], 7); C = FF(C, D, A, B, tmp[6], 11); B = FF(B, C, D, A, tmp[7], 19); A = FF(A, B, C, D, tmp[8], 3); D = FF(D, A, B, C, tmp[9], 7); C = FF(C, D, A, B, tmp[10], 11); B = FF(B, C, D, A, tmp[11], 19); A = FF(A, B, C, D, tmp[12], 3); D = FF(D, A, B, C, tmp[13], 7); C = FF(C, D, A, B, tmp[14], 11); B = FF(B, C, D, A, tmp[15], 19); A = GG(A, B, C, D, tmp[0], 3); D = GG(D, A, B, C, tmp[4], 5); C = GG(C, D, A, B, tmp[8], 9); B = GG(B, C, D, A, tmp[12], 13); A = GG(A, B, C, D, tmp[1], 3); D = GG(D, A, B, C, tmp[5], 5); C = GG(C, D, A, B, tmp[9], 9); B = GG(B, C, D, A, tmp[13], 13); A = GG(A, B, C, D, tmp[2], 3); D = GG(D, A, B, C, tmp[6], 5); C = GG(C, D, A, B, tmp[10], 9); B = GG(B, C, D, A, tmp[14], 13);
Md4() { reset(); }
private void digest(byte[] buffer, int offset, int len) { this.buffer[this.bufferOffset++] = (byte) 0x80; int lenOfBitLen = 8; int C = BLOCK_SIZE - lenOfBitLen; if (this.bufferOffset > C) { while (this.bufferOffset < BLOCK_SIZE) { this.buffer[this.bufferOffset++] = (byte) 0x00; } update(this.buffer, 0); this.bufferOffset = 0; } while (this.bufferOffset < C) { this.buffer[this.bufferOffset++] = (byte) 0x00; } long bitCount = byteCount * 8; for (int i = 0; i < 64; i += 8) { this.buffer[this.bufferOffset++] = (byte) (bitCount >>> (i)); } update(this.buffer, 0); digest(buffer, offset); }
public byte[] digest() { byte[] resBuf = new byte[HASH_SIZE]; digest(resBuf, 0, HASH_SIZE); return resBuf; }
public void update(byte[] input, int offset, int length) { byteCount += length; int todo; while (length >= (todo = BLOCK_SIZE - this.bufferOffset)) { System.arraycopy(input, offset, this.buffer, this.bufferOffset, todo); update(this.buffer, 0); length -= todo; offset += todo; this.bufferOffset = 0; } System.arraycopy(input, offset, this.buffer, this.bufferOffset, length); bufferOffset += length; }
private void digest(byte[] buffer, int offset, int len) { this.buffer[this.bufferOffset++] = (byte) 0x80; int lenOfBitLen = 8; int C = BLOCK_SIZE - lenOfBitLen; if (this.bufferOffset > C) { while (this.bufferOffset < BLOCK_SIZE) { this.buffer[this.bufferOffset++] = (byte) 0x00; } update(this.buffer, 0); this.bufferOffset = 0; } while (this.bufferOffset < C) { this.buffer[this.bufferOffset++] = (byte) 0x00; } long bitCount = byteCount * 8; for (int i = 0; i < 64; i += 8) { this.buffer[this.bufferOffset++] = (byte) (bitCount >>> (i)); } update(this.buffer, 0); digest(buffer, offset); }
public byte[] digest() { byte[] resBuf = new byte[HASH_SIZE]; digest(resBuf, 0, HASH_SIZE); return resBuf; }
public void update(byte[] input, int offset, int length) { byteCount += length; int todo; while (length >= (todo = BLOCK_SIZE - this.bufferOffset)) { System.arraycopy(input, offset, this.buffer, this.bufferOffset, todo); update(this.buffer, 0); length -= todo; offset += todo; this.bufferOffset = 0; } System.arraycopy(input, offset, this.buffer, this.bufferOffset, length); bufferOffset += length; }
private String digest(String salt, CharSequence rawPassword) { if (rawPassword == null) { rawPassword = ""; } String saltedPassword = rawPassword + salt; byte[] saltedPasswordBytes = Utf8.encode(saltedPassword); Md4 md4 = new Md4(); md4.update(saltedPasswordBytes, 0, saltedPasswordBytes.length); byte[] digest = md4.digest(); String encoded = encode(digest); return salt + encoded; }
A = FF(A, B, C, D, tmp[0], 3); D = FF(D, A, B, C, tmp[1], 7); C = FF(C, D, A, B, tmp[2], 11); B = FF(B, C, D, A, tmp[3], 19); A = FF(A, B, C, D, tmp[4], 3); D = FF(D, A, B, C, tmp[5], 7); C = FF(C, D, A, B, tmp[6], 11); B = FF(B, C, D, A, tmp[7], 19); A = FF(A, B, C, D, tmp[8], 3); D = FF(D, A, B, C, tmp[9], 7); C = FF(C, D, A, B, tmp[10], 11); B = FF(B, C, D, A, tmp[11], 19); A = FF(A, B, C, D, tmp[12], 3); D = FF(D, A, B, C, tmp[13], 7); C = FF(C, D, A, B, tmp[14], 11); B = FF(B, C, D, A, tmp[15], 19); A = GG(A, B, C, D, tmp[0], 3); D = GG(D, A, B, C, tmp[4], 5); C = GG(C, D, A, B, tmp[8], 9); B = GG(B, C, D, A, tmp[12], 13); A = GG(A, B, C, D, tmp[1], 3); D = GG(D, A, B, C, tmp[5], 5); C = GG(C, D, A, B, tmp[9], 9); B = GG(B, C, D, A, tmp[13], 13); A = GG(A, B, C, D, tmp[2], 3); D = GG(D, A, B, C, tmp[6], 5); C = GG(C, D, A, B, tmp[10], 9); B = GG(B, C, D, A, tmp[14], 13);
private void digest(byte[] buffer, int offset, int len) { this.buffer[this.bufferOffset++] = (byte) 0x80; int lenOfBitLen = 8; int C = BLOCK_SIZE - lenOfBitLen; if (this.bufferOffset > C) { while (this.bufferOffset < BLOCK_SIZE) { this.buffer[this.bufferOffset++] = (byte) 0x00; } update(this.buffer, 0); this.bufferOffset = 0; } while (this.bufferOffset < C) { this.buffer[this.bufferOffset++] = (byte) 0x00; } long bitCount = byteCount * 8; for (int i = 0; i < 64; i += 8) { this.buffer[this.bufferOffset++] = (byte) (bitCount >>> (i)); } update(this.buffer, 0); digest(buffer, offset); }
public byte[] digest() { byte[] resBuf = new byte[HASH_SIZE]; digest(resBuf, 0, HASH_SIZE); return resBuf; }
public void update(byte[] input, int offset, int length) { byteCount += length; int todo; while (length >= (todo = BLOCK_SIZE - this.bufferOffset)) { System.arraycopy(input, offset, this.buffer, this.bufferOffset, todo); update(this.buffer, 0); length -= todo; offset += todo; this.bufferOffset = 0; } System.arraycopy(input, offset, this.buffer, this.bufferOffset, length); bufferOffset += length; }
private String digest(String salt, CharSequence rawPassword) { if (rawPassword == null) { rawPassword = ""; } String saltedPassword = rawPassword + salt; byte[] saltedPasswordBytes = Utf8.encode(saltedPassword); Md4 md4 = new Md4(); md4.update(saltedPasswordBytes, 0, saltedPasswordBytes.length); byte[] digest = md4.digest(); String encoded = encode(digest); return salt + encoded; }
A = FF(A, B, C, D, tmp[0], 3); D = FF(D, A, B, C, tmp[1], 7); C = FF(C, D, A, B, tmp[2], 11); B = FF(B, C, D, A, tmp[3], 19); A = FF(A, B, C, D, tmp[4], 3); D = FF(D, A, B, C, tmp[5], 7); C = FF(C, D, A, B, tmp[6], 11); B = FF(B, C, D, A, tmp[7], 19); A = FF(A, B, C, D, tmp[8], 3); D = FF(D, A, B, C, tmp[9], 7); C = FF(C, D, A, B, tmp[10], 11); B = FF(B, C, D, A, tmp[11], 19); A = FF(A, B, C, D, tmp[12], 3); D = FF(D, A, B, C, tmp[13], 7); C = FF(C, D, A, B, tmp[14], 11); B = FF(B, C, D, A, tmp[15], 19); A = GG(A, B, C, D, tmp[0], 3); D = GG(D, A, B, C, tmp[4], 5); C = GG(C, D, A, B, tmp[8], 9); B = GG(B, C, D, A, tmp[12], 13); A = GG(A, B, C, D, tmp[1], 3); D = GG(D, A, B, C, tmp[5], 5); C = GG(C, D, A, B, tmp[9], 9); B = GG(B, C, D, A, tmp[13], 13); A = GG(A, B, C, D, tmp[2], 3); D = GG(D, A, B, C, tmp[6], 5); C = GG(C, D, A, B, tmp[10], 9); B = GG(B, C, D, A, tmp[14], 13);
private void digest(byte[] buffer, int offset, int len) { this.buffer[this.bufferOffset++] = (byte) 0x80; int lenOfBitLen = 8; int C = BLOCK_SIZE - lenOfBitLen; if (this.bufferOffset > C) { while (this.bufferOffset < BLOCK_SIZE) { this.buffer[this.bufferOffset++] = (byte) 0x00; } update(this.buffer, 0); this.bufferOffset = 0; } while (this.bufferOffset < C) { this.buffer[this.bufferOffset++] = (byte) 0x00; } long bitCount = byteCount * 8; for (int i = 0; i < 64; i += 8) { this.buffer[this.bufferOffset++] = (byte) (bitCount >>> (i)); } update(this.buffer, 0); digest(buffer, offset); }
public byte[] digest() { byte[] resBuf = new byte[HASH_SIZE]; digest(resBuf, 0, HASH_SIZE); return resBuf; }
public void update(byte[] input, int offset, int length) { byteCount += length; int todo; while (length >= (todo = BLOCK_SIZE - this.bufferOffset)) { System.arraycopy(input, offset, this.buffer, this.bufferOffset, todo); update(this.buffer, 0); length -= todo; offset += todo; this.bufferOffset = 0; } System.arraycopy(input, offset, this.buffer, this.bufferOffset, length); bufferOffset += length; }