code: public static Map<String, Long> getDefaultGuessTypes(Long crackingHardwareCost)
      {
          BigDecimal moores_multiplier = getMooresMultiplier();
          BigDecimal cost_multiplier = BigDecimal.valueOf(crackingHardwareCost).divide(BigDecimal.valueOf(20000), 5, RoundingMode.HALF_UP);
          Map<String, Long> guessTypes = new HashMap<>();
          guessTypes.put("OFFLINE_MD5", cost_multiplier.multiply(moores_multiplier.multiply(BigDecimal.valueOf(250375000000L))).longValue());
          guessTypes.put("OFFLINE_SHA1", cost_multiplier.multiply(moores_multiplier.multiply(BigDecimal.valueOf(85963750000L))).longValue());
          guessTypes.put("OFFLINE_SHA512", cost_multiplier.multiply(moores_multiplier.multiply(BigDecimal.valueOf(10780875000L))).longValue());
          guessTypes.put("OFFLINE_BCRYPT_5", cost_multiplier.multiply(moores_multiplier.multiply(BigDecimal.valueOf(130875L))).longValue());
          guessTypes.put("OFFLINE_BCRYPT_10", cost_multiplier.multiply(moores_multiplier.multiply(BigDecimal.valueOf(4129L))).longValue());
          guessTypes.put("OFFLINE_BCRYPT_12", cost_multiplier.multiply(moores_multiplier.multiply(BigDecimal.valueOf(1033L))).longValue());
          guessTypes.put("OFFLINE_BCRYPT_14", cost_multiplier.multiply(moores_multiplier.multiply(BigDecimal.valueOf(259L))).longValue());
          guessTypes.put("ONLINE_UNTHROTTLED", 100L);
          guessTypes.put("ONLINE_THROTTLED", 2L);
          return guessTypes;
      }
docs: This list was compiled in August 2018 using a baseline of what could be bought for roughly $20k usd for the offline attack values.
  <p>
  In the case this library is no longer maintained (or you choose to stay on an old version of it), we will scale the existing values by Moore's law.
  
  @param crackingHardwareCost the hardware cost (USD) to scale the guesses per second
  @return The default list of guess types and associated values of guesses per second.