您不需要添加 md5 和 unique 作为 eval 参数。在 7.x 中,密码使用 saltedpasswords 系统扩展自动加密,比 md5 更安全。密码通常不是唯一的,所以我猜它是错误的,但它实际上也应该使用唯一的。
'password' => array(
'exclude' => 1,
'label' => 'LLL:EXT:myext/Resources/Private/Language/locallang_db.xlf:tx_myext_domain_model_pin.password',
'config' => array(
'type' => 'input',
'size' => 50,
'eval' => 'nospace,required,password'
)
),
稍后您可以通过这种方式检查密码:
$hash
是您数据库中的密码哈希,$password
是您正在检查的播放密码
if (\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('saltedpasswords') && \TYPO3\CMS\Saltedpasswords\Utility\SaltedPasswordsUtility::isUsageEnabled('FE')) {
$saltObject = \TYPO3\CMS\Saltedpasswords\Salt\SaltFactory::getSaltingInstance(NULL);
return $saltObject->checkPassword($password, $hash);
} elseif ($GLOBALS['TYPO3_CONF_VARS']['FE']['loginSecurityLevel'] == 'md5') {
return $password == md5($password);
} elseif ($GLOBALS['TYPO3_CONF_VARS']['FE']['loginSecurityLevel'] === 'sha1') {
return $password == sha1($password);
}