Sha256 Hashes in CLIPS

Here’s the translation of the SHA256 Hashes example to Java, formatted in Markdown suitable for Hugo:

Our 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) {
            System.out.println("SHA-256 algorithm not available");
        }
    }
}

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

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

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!