public static final boolean verifyHashTextFormat(String sha256CryptText)
  {
    if (!sha256CryptText.startsWith(sha256_salt_prefix))
      {
        return false;
      }

    sha256CryptText = sha256CryptText.substring(sha256_salt_prefix.length());

    if (sha256CryptText.startsWith(sha256_rounds_prefix))
      {
        String num = sha256CryptText.substring(sha256_rounds_prefix.length(), sha256CryptText.indexOf('$'));

        try
          {
            int srounds = Integer.valueOf(num).intValue();
          }
        catch (NumberFormatException ex)
          {
            return false;
          }

        sha256CryptText = sha256CryptText.substring(sha256CryptText.indexOf('$')+1);
      }

    if (sha256CryptText.indexOf('$') > (SALT_LEN_MAX + 1))
      {
        return false;
      }

    sha256CryptText = sha256CryptText.substring(sha256CryptText.indexOf('$') + 1);

    for (int i = 0; i < sha256CryptText.length(); i++)
      {
        if (itoa64.indexOf(sha256CryptText.charAt(i)) == -1)
          {
            return false;
          }
      }

    return true;
  }