Sha256 Hashes in Squirrel
Here’s the translation of the SHA256 Hashes example to Java, formatted in Markdown suitable for Hugo:
SHA256 hashes are frequently used to compute short identities for binary or text blobs. For example, TLS/SSL certificates use SHA256 to compute a certificate’s signature. Here’s how to compute SHA256 hashes in Java.
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA256Hashes {
public static void main(String[] args) {
String s = "sha256 this string";
try {
// Here we start with a new hash.
MessageDigest digest = MessageDigest.getInstance("SHA-256");
// update() expects bytes. If you have a string s,
// use s.getBytes() to coerce it to bytes.
digest.update(s.getBytes());
// This gets the finalized hash result as a byte array.
byte[] hash = digest.digest();
System.out.println(s);
System.out.printf("%064x%n", new java.math.BigInteger(1, hash));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
}
Running the program computes the hash and prints it in a human-readable hex format.
$ javac SHA256Hashes.java
$ java SHA256Hashes
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a0678c2836186f80
You can compute other hashes using a similar pattern to the one shown above. For example, to compute SHA-512 hashes, you would use MessageDigest.getInstance("SHA-512")
.
Note that if you need cryptographically secure hashes, you should carefully research hash strength!