Ich habe eine große Tabelle von fe_users aus dem besagten alten System in das neue übertragen. In der alten TYPO3 Version waren die Passwörter noch im Klartext in der Datenbank. Nun wollte ich sie neu verschlüsseln und in das Passwortfeld password zurückschreiben. Dazu habe ich folgenden PHP-Code verwendet:
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery(
'u.uid, u.name, u.password',
'fe_users u'
);
while ($x = $GLOBALS['TYPO3_DB']->sql_fetch_row($res)) {
$password = $x[2];
$objSalt = \tx_saltedpasswords_salts_factory::getSaltingInstance(NULL);
if (is_object($objSalt)) {
$saltedPassword = $objSalt->getHashedPassword($password);
}
$x[3] = $saltedPassword;
$GLOBALS['TYPO3_DB']->exec_UPDATEquery(
'fe_users',
'uid = ' . $x[0],
array('password' => $x[3])
);
}
Was für einen einmaligen Vorgang OK sein sollte. Es funktioniert auch soweit, dass er ein neues Passwort erstellt und dann in die Datenbank einträgt.
Das Problem ist jedoch, dass keine der Credentials mehr funktionieren. D.h. man kann sich nicht anmelden. Habe ich etwas vergessen oder nicht beachtet? Oder liegt ein anderes Problem vor?