/**
  * Function determines the default(=configured) type of
  * salted hashing method to be used.
  *
  * @param string $mode (optional) The TYPO3 mode (FE or BE) saltedpasswords shall be used for
  * @return string Classname of object to be used
  */
 public static function getDefaultSaltingHashingMethod($mode = TYPO3_MODE)
 {
     $extConf = self::returnExtConf($mode);
     $classNameToUse = \TYPO3\CMS\Saltedpasswords\Salt\Md5Salt::class;
     if (in_array($extConf['saltedPWHashingMethod'], array_keys(\TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getRegisteredSaltedHashingMethods()))) {
         $classNameToUse = $extConf['saltedPWHashingMethod'];
     }
     return $classNameToUse;
 }
 /**
  * Renders a selector element that allows to select the hash method to be used.
  *
  * @param array $params Field information to be rendered
  * @param \TYPO3\CMS\Core\TypoScript\ConfigurationForm $pObj The calling parent object.
  * @param string $disposal The configuration disposal ('FE' or 'BE')
  * @return string The HTML selector
  */
 protected function buildHashMethodSelector(array $params, $pObj, $disposal)
 {
     $this->init();
     $propertyName = $params['propertyName'];
     $unknownVariablePleaseRenameMe = '\'' . substr(md5($propertyName), 0, 10) . '\'';
     $pField = '';
     $registeredMethods = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getRegisteredSaltedHashingMethods();
     foreach ($registeredMethods as $class => $reference) {
         $classInstance = GeneralUtility::getUserObj($reference);
         if ($classInstance instanceof \TYPO3\CMS\Saltedpasswords\Salt\SaltInterface && $classInstance->isAvailable()) {
             $sel = $this->extConf[$disposal]['saltedPWHashingMethod'] == $class ? ' selected="selected" ' : '';
             $label = 'ext.saltedpasswords.title.' . strtolower(end(explode('\\', $class)));
             $pField .= '<option value="' . htmlspecialchars($class) . '"' . $sel . '>' . $GLOBALS['LANG']->getLL($label) . '</option>';
         }
     }
     $pField = '<select id="' . $propertyName . '" name="' . $params['fieldName'] . '" onChange="uFormUrl(' . $unknownVariablePleaseRenameMe . ')">' . $pField . '</select>';
     return $pField;
 }