Class Hash


  • public class Hash
    extends java.lang.Object
    Hashes the client's stdin to the client's stdout in the form of a hexadecimal string. Command line requires one parameter: either the name of the algorithm to use (e.g., "MD5"), or "?" to request a list of available algorithms.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static char[] HEXCHARS  
    • Constructor Summary

      Constructors 
      Constructor Description
      Hash()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.util.Set getCryptoImpls​(java.lang.String serviceType)
      Provides a list of algorithms for the specified service (which, for our purposes, is "MessageDigest".
      static void nailMain​(NGContext context)
      Hashes client stdin, displays hash result to client stdout.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • HEXCHARS

        private static final char[] HEXCHARS
    • Constructor Detail

      • Hash

        public Hash()
    • Method Detail

      • getCryptoImpls

        private static java.util.Set getCryptoImpls​(java.lang.String serviceType)
        Provides a list of algorithms for the specified service (which, for our purposes, is "MessageDigest". This method was only very slightly adapted (to use a TreeSet) from the Java Almanac at http://javaalmanac.com/egs/java.security/ListServices.html
        Parameters:
        serviceType - The name of the service we're looking for. It's "MessageDigest"
      • nailMain

        public static void nailMain​(NGContext context)
                             throws java.security.NoSuchAlgorithmException,
                                    java.io.IOException
        Hashes client stdin, displays hash result to client stdout. Requires one command line parameter, either the name of the hash algorithm to use (e.g., "MD5") or "?" to request a list of available algorithms. Any exceptions become the problem of the user.
        Throws:
        java.security.NoSuchAlgorithmException
        java.io.IOException