Class MessageDigestHasher

java.lang.Object
org.tribuo.hash.Hasher
org.tribuo.hash.MessageDigestHasher
All Implemented Interfaces:
com.oracle.labs.mlrg.olcut.config.Configurable, com.oracle.labs.mlrg.olcut.provenance.Provenancable<com.oracle.labs.mlrg.olcut.provenance.ConfiguredObjectProvenance>, Serializable, ProtoSerializable<org.tribuo.protos.core.HasherProto>

public final class MessageDigestHasher extends Hasher
Hashes Strings using the supplied MessageDigest type.

MessageDigestHasher does not serialize the salt in its serialized forms, and thus the salt must be set after deserialization.

See Also:
  • Field Details

  • Constructor Details

    • MessageDigestHasher

      public MessageDigestHasher(String hashType, String salt)
      Constructs a message digest hasher.
      Parameters:
      hashType - The hash function to use.
      salt - The salt value.
  • Method Details

    • deserializeFromProto

      public static MessageDigestHasher deserializeFromProto(int version, String className, com.google.protobuf.Any message) throws com.google.protobuf.InvalidProtocolBufferException
      Deserialization factory.

      Note the salt must be set after the hasher has been deserialized.

      Parameters:
      version - The serialized object version number.
      className - The class name.
      message - The serialized data.
      Returns:
      The deserialized object.
      Throws:
      com.google.protobuf.InvalidProtocolBufferException - If the protobuf could not be parsed from the message.
    • postConfig

      public void postConfig() throws com.oracle.labs.mlrg.olcut.config.PropertyException
      Used by the OLCUT configuration system, and should not be called by external code.
      Throws:
      com.oracle.labs.mlrg.olcut.config.PropertyException
    • hash

      public String hash(String input)
      Description copied from class: Hasher
      Hashes the supplied input using the hashing function.

      If the salt is not set then this throws IllegalStateException.

      Specified by:
      hash in class Hasher
      Parameters:
      input - The input to hash.
      Returns:
      A String representation of the hashed output.
    • serialize

      public org.tribuo.protos.core.HasherProto serialize()
      Description copied from interface: ProtoSerializable
      Serializes this object to a protobuf.
      Returns:
      The protobuf.
    • setSalt

      public void setSalt(String salt)
      Description copied from class: Hasher
      The salt is transient, it must be set **to the same value as it was trained with** after the Model is deserialized.
      Specified by:
      setSalt in class Hasher
      Parameters:
      salt - Salt value.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getProvenance

      public com.oracle.labs.mlrg.olcut.provenance.ConfiguredObjectProvenance getProvenance()
    • getDigestSupplier

      public static Supplier<MessageDigest> getDigestSupplier(String hashType)
      Creates a supplier for the specified hash type.
      Parameters:
      hashType - The hash type, used to specify the MessageDigest implementation.
      Returns:
      A supplier for the MessageDigest.