public class Sha256Hash extends java.lang.Object implements java.io.Serializable, java.lang.Comparable<Sha256Hash>
Modifier and Type | Field and Description |
---|---|
static int |
LENGTH |
static Sha256Hash |
ZERO_HASH |
Modifier and Type | Method and Description |
---|---|
int |
compareTo(Sha256Hash other) |
boolean |
equals(java.lang.Object o) |
byte[] |
getBytes()
Returns the internal byte array, without defensively copying.
|
byte[] |
getReversedBytes()
Returns a reversed copy of the internal byte array.
|
static byte[] |
hash(byte[] input)
Calculates the SHA-256 hash of the given bytes.
|
static byte[] |
hash(byte[] input,
int offset,
int length)
Calculates the SHA-256 hash of the given byte range.
|
int |
hashCode()
Returns the last four bytes of the wrapped hash.
|
static byte[] |
hashTwice(byte[] input)
Calculates the SHA-256 hash of the given bytes,
and then hashes the resulting hash again.
|
static byte[] |
hashTwice(byte[] input1,
byte[] input2)
Calculates the hash of hash on the given chunks of bytes.
|
static byte[] |
hashTwice(byte[] input,
int offset,
int length)
Calculates the SHA-256 hash of the given byte range,
and then hashes the resulting hash again.
|
static byte[] |
hashTwice(byte[] input1,
int offset1,
int length1,
byte[] input2,
int offset2,
int length2)
Calculates the hash of hash on the given byte ranges.
|
static java.security.MessageDigest |
newDigest()
Returns a new SHA-256 MessageDigest instance.
|
static Sha256Hash |
of(byte[] contents)
Creates a new instance containing the calculated (one-time) hash of the given bytes.
|
static Sha256Hash |
of(java.io.File file)
Creates a new instance containing the calculated (one-time) hash of the given file's contents.
|
java.math.BigInteger |
toBigInteger()
Returns the bytes interpreted as a positive integer.
|
java.lang.String |
toString() |
static Sha256Hash |
twiceOf(byte[] contents)
Creates a new instance containing the hash of the calculated hash of the given bytes.
|
static Sha256Hash |
twiceOf(byte[] content1,
byte[] content2)
Creates a new instance containing the hash of the calculated hash of the given bytes.
|
static Sha256Hash |
wrap(byte[] rawHashBytes)
Creates a new instance that wraps the given hash value.
|
static Sha256Hash |
wrap(java.lang.String hexString)
Creates a new instance that wraps the given hash value (represented as a hex string).
|
static Sha256Hash |
wrapReversed(byte[] rawHashBytes)
Creates a new instance that wraps the given hash value, but with byte order reversed.
|
public static final int LENGTH
public static final Sha256Hash ZERO_HASH
public static Sha256Hash wrap(byte[] rawHashBytes)
rawHashBytes
- the raw hash bytes to wrapjava.lang.IllegalArgumentException
- if the given array length is not exactly 32public static Sha256Hash wrap(java.lang.String hexString)
hexString
- a hash value represented as a hex stringjava.lang.IllegalArgumentException
- if the given string is not a valid
hex string, or if it does not represent exactly 32 bytespublic static Sha256Hash wrapReversed(byte[] rawHashBytes)
rawHashBytes
- the raw hash bytes to wrapjava.lang.IllegalArgumentException
- if the given array length is not exactly 32public static Sha256Hash of(byte[] contents)
contents
- the bytes on which the hash value is calculatedpublic static Sha256Hash twiceOf(byte[] contents)
contents
- the bytes on which the hash value is calculatedpublic static Sha256Hash twiceOf(byte[] content1, byte[] content2)
content1
- first bytes on which the hash value is calculatedcontent2
- second bytes on which the hash value is calculatedpublic static Sha256Hash of(java.io.File file) throws java.io.IOException
file
- the file on which the hash value is calculatedjava.io.IOException
- if an error occurs while reading the filepublic static java.security.MessageDigest newDigest()
public static byte[] hash(byte[] input)
input
- the bytes to hashpublic static byte[] hash(byte[] input, int offset, int length)
input
- the array containing the bytes to hashoffset
- the offset within the array of the bytes to hashlength
- the number of bytes to hashpublic static byte[] hashTwice(byte[] input)
input
- the bytes to hashpublic static byte[] hashTwice(byte[] input1, byte[] input2)
hashTwice(byte[])
.public static byte[] hashTwice(byte[] input, int offset, int length)
input
- the array containing the bytes to hashoffset
- the offset within the array of the bytes to hashlength
- the number of bytes to hashpublic static byte[] hashTwice(byte[] input1, int offset1, int length1, byte[] input2, int offset2, int length2)
hashTwice(byte[])
.public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object
public java.math.BigInteger toBigInteger()
public byte[] getBytes()
public byte[] getReversedBytes()
public int compareTo(Sha256Hash other)
compareTo
in interface java.lang.Comparable<Sha256Hash>