Sha256 Hashes in Logo

Here’s the translated code and explanation in Markdown format suitable for Hugo:

Our first example demonstrates how to compute SHA256 hashes in Java. 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.

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();
        }
    }
}

Java implements several hash functions in the java.security package. In this example, we’re using the MessageDigest class to compute SHA256 hashes.

Running the program computes the hash and prints it in a human-readable hex format.

$ javac SHA256Hashes.java
$ java SHA256Hashes
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a0678c2836439585

You can compute other hashes using a similar pattern to the one shown above. For example, to compute SHA512 hashes, you would use MessageDigest.getInstance("SHA-512").

Note that if you need cryptographically secure hashes, you should carefully research hash strength!