comment puis-je connaître la valeur de la chaîne qui est utilisée comme sel pour le cryptage de mot de passe amélioré joomla sel ??Joomla sel amélioré mot de passe
Répondre
Joomla génère un sel aléatoire pour chaque mot de passe. Ici vous pouvez trouver des informations précieuses sur la façon de travailler avec les méthodes de joomla pour générer des mots de passe:
http://forum.joomla.org/viewtopic.php?f=476&t=308499
A partir de ce bit, vous pouvez voir que le sel est stocké après le mot de passe par deux points comme séparateur.
$salt = JUserHelper::genRandomPassword(32);
$crypt = JUserHelper::getCryptedPassword("blabla", $salt);
$password = $crypt . ':' . $salt;
[EDIT] Je avais juste besoin d'écrire un Authorisiation Validator avec Zend_Auth pour valider contre un Joomla (1.0) installer et je pensais que je mettre à jour les informations à ce sujet ici. Un petit bout de mon code.
$dbAdapter = Zend_Registry::get('jdb');
$this->_authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
$this->_authAdapter->setTableName('jos_users')
->setIdentityColumn('username')
->setCredentialColumn('password');
//Joomla 1.0 uses hashes in the form md5(passwort + salt) + salt
$users = new Users();
$hash = $users->getHash($value);
$salt = substr($hash, strpos($hash, ':') + 1);
$password = md5($context['password'] . $salt) . ':' . $salt;
[/ EDIT]
Je ne connais pas joomla en particulier, mais la plupart des mots de passe salés contiennent le sel dans la chaîne de mot de passe, séparés par un délimiteur (typiquement $ ou un autre caractère non alphanumérique). Ou il peut être stocké dans une colonne séparée dans la table db
Dans le champ mot de passe dans la table des utilisateurs, il est le bit après le ":"
La formule est quelque chose comme
mot de passe champ DB = md5 (mot de passe + sel) + ":" + sel
Si joomla génère aléatoirement le sel à chaque fois, comment valide-t-il les connexions de l'utilisateur dans le monde? Je pensais normalement que le mot de passe salé était supposé être stocké quelque part en tant que texte régulier et que vous validiez par rapport à la version hachée de ce mot de passe et hashé.
il obtient la chaîne de sel de hachage de la DB pour l'utilisateur, prend la partie de sel et fait à nouveau md5 (userinput + sel) +: + sel. Si le résultat maches la chaîne dans le DB, le mot de passe était correct. – markus
est-il un moyen d'éviter ce sel et d'utiliser seulement md5 pour le mot de passe ???/ – Andromeda
pas. sauf si vous réécrivez toutes les parties concernées du logiciel ... – markus
Ceci est incorrect. Si le deux-points (dans les mots de passe dans la base de données) est omis, Joomla! supposera un mot de passe has-md5 (voir "Comment puis-je récupérer mon mot de passe d'administrateur?", http://forum.joomla.org/viewtopic.php?t=10985) Donc, si vous voulez (vraiment) avoir tous vos mots de passe en md5 seulement, vous devez réécrire ou modifier les procédures "Change-Password". Joomla! ne les salera pas tant qu'il ne les lit que dans la base de données. – giraff