public Map<String, String> getFormatClassNames() {
        return formatClassNames;
    }
Returns a {@code hashFormatAlias}-to-<code>fullyQualifiedHashFormatClassNameImplementation</code> map.
<p/>
This map will be used by the {@link #getInstance(String) getInstance} implementation:  that method's argument
will be used as a lookup key to this map.  If the map returns a value, that value will be used to instantiate
and return a new {@code HashFormat} instance.
<h3>Defaults</h3>
Shiro's default HashFormat implementations (as listed by the {@link ProvidedHashFormat} enum) will
be searched automatically independently of this map.  You only need to populate this map with custom
{@code HashFormat} implementations that are <em>not</em> already represented by a {@code ProvidedHashFormat}.
<h3>Efficiency</h3>
Populating this map will be more efficient than configuring {@link #getSearchPackages() searchPackages},
but search packages may be more convenient depending on the number of {@code HashFormat} implementations that
need to be supported by this factory.

@return a {@code hashFormatAlias}-to-<code>fullyQualifiedHashFormatClassNameImplementation</code> map.
crypto/hash/src/main/java/org/apache/shiro/crypto/hash/format/DefaultHashFormatFactory.java