Encrypt

\nn\t3::Encrypt()

Verschlüsseln und Hashen von Passworten

Overview of Methods

\nn\t3::Encrypt()->checkPassword($password = '', $passwordHash = NULL);

Prüft, ob Hash eines Passwortes und ein Passwort übereinstimmen. Anwendung: Passwort-Hash eines fe_users in der Datenbank mit übergebenem Passwort vergleichen.

\nn\t3::Encrypt()->checkPassword('99grad', '$1$wtnFi81H$mco6DrrtdeqiziRJyisdK1.');
@return boolean

\nn\t3::Encrypt()->getHashInstance($passwordHash = '', $loginType = 'FE');

Gibt den Klassen-Names des aktuellen Hash-Algorithmus eines verschlüsselten Passwortes wieder, z.B. um beim fe_user zu wissen, wie das Passwort in der DB verschlüsselt wurde.

\nn\t3::Encrypt()->getHashInstance('$P$CIz84Y3r6.0HX3saRwYg0ff5M0a4X1.');
// => \TYPO3\CMS\Core\Crypto\PasswordHashing\PhpassPasswordHash
@return class

\nn\t3::Encrypt()->hash($string = '');

Einfaches Hashing, z.B. beim Check einer uid gegen ein Hash.

\nn\t3::Encrypt()->hash( $uid );

Existiert auch als ViewHelper:

{something->nnt3:encrypt.hash()}
@return string

\nn\t3::Encrypt()->hashNeedsUpdate($passwordHash = '', $loginType = 'FE');

Prüft, ob Hash aktualisiert werden muss, weil er nicht dem aktuellen Verschlüsselungs-Algorithmus enspricht. Beim Update von Typo3 in eine neue LTS wird gerne auch der Hashing-Algorithmus der Passwörter in der Datenbank verbessert. Diese Methode prüft, ob der übergebene Hash noch aktuell ist oder aktualisert werden muss.

Gibt true zurück, falls ein Update erforderlich ist.

\nn\t3::Encrypt()->hashNeedsUpdate('$P$CIz84Y3r6.0HX3saRwYg0ff5M0a4X1.');    // true

Ein automatisches Update des Passwortes könnte in einem manuellen FE-User Authentification-Service so aussehen:

$uid = $user['uid'];    // uid des FE-Users
$authResult = \nn\t3::Encrypt()->checkPassword( $passwordHashInDatabase, $clearTextPassword );
if ($authResult & \nn\t3::Encrypt()->hashNeedsUpdate( $passwordHashInDatabase )) {
    \nn\t3::FrontendUserAuthentication()->setPassword( $uid, $clearTextPassword );
}
@return boolean

\nn\t3::Encrypt()->password($clearTextPassword = '', $context = 'FE');

Hashing eines Passwortes nach Typo3-Prinzip. Anwendung: Passwort eines fe_users in der Datenbank überschreiben

\nn\t3::Encrypt()->password('99grad');
@return string