public String createHash ( final String iInput , final String iAlgorithm , final boolean iIncludeAlgorithm ) { if ( iInput == null ) throw new IllegalArgumentException ( "Input string is null" ) ; if ( iAlgorithm == null ) throw new IllegalArgumentException ( "Algorithm is null" ) ; final StringBuilder buffer = new StringBuilder ( 128 ) ; final String algorithm = validateAlgorithm ( iAlgorithm ) ; if ( iIncludeAlgorithm ) { buffer . append ( ' ' ) ; buffer . append ( algorithm ) ; buffer . append ( ' ' ) ; } final String transformed ; if ( HASH_ALGORITHM . equalsIgnoreCase ( algorithm ) ) { transformed = createSHA256 ( iInput ) ; } else if ( PBKDF2_ALGORITHM . equalsIgnoreCase ( algorithm ) ) { transformed = createHashWithSalt ( iInput , OGlobalConfiguration . SECURITY_USER_PASSWORD_SALT_ITERATIONS . getValueAsInteger ( ) , algorithm ) ; } else if ( PBKDF2_SHA256_ALGORITHM . equalsIgnoreCase ( algorithm ) ) { transformed = createHashWithSalt ( iInput , OGlobalConfiguration . SECURITY_USER_PASSWORD_SALT_ITERATIONS . getValueAsInteger ( ) , algorithm ) ; } else throw new IllegalArgumentException ( "Algorithm '" + algorithm + "' is not supported" ) ; buffer . append ( transformed ) ; return buffer . toString ( ) ; }
Hashes the input string .