1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Cryptage des password ?
Mots-clés » cryptage, password
14-01-2007, 0:16,
#1
Cryptage des password ?
Salut tous le monde Smile
Voila, j'ai besoin d'aide pour integrer mybb à mon site.
Je voudrais en faites, installer un cookie et une session sur mon site en fonction des inscrits sur le forum, mais voila, je n'arrives pas à comprendre comment les mots de pass on été crypté, car j'ai essayé avec le module md5, mais les mots de passes généré après le cryptage sont encore différent, alors que c'est les mêmes :s
Donc si quelqu'un pouvais me dire comment les password était cryptée, car là je commence à péter un cable :s

Merci d'avance
14-01-2007, 15:38,
#2
RE: Cryptage des password ?
Il y a dans la base un "salt" (qui ajoute du poivre).
La formule est:
Code :
md5(md5($salt).$password);

14-01-2007, 15:54,
#3
RE: Cryptage des password ?
Ok, merci je vais tester ça Smile

EDIT : Voila, je vient de voire ton code, et j'avais pas remarquer au début, mais qu'est-ce que la variable salt ?
Comment je fait pour la définir ?

Car voiçi mon code qui serait utiliser pour crypter le password avant de lancer ma fonction, mais je sais pas du tous comment faire pour le $salt :s
Code :
$password = md5(md5($salt).$pass);
$cookie = login($pseudo,$password);
echo $cookie;

Voila, et je récupères la variale $pass graçe à un $_POST['']
14-01-2007, 16:56,
#4
RE: Cryptage des password ?
$salt est pris dans la base.
Et sans vouloir te vexer, conserver le pass en cookie n'est pas une bonne idée. Le cookie devrait conserver le login, l'userid et son status (loggué ou pas).

14-01-2007, 18:06,
#5
RE: Cryptage des password ?
Ne t'inquiète pas, j'ai mis des noms de variables au hasard, içi le cookie ne prendra en compte que l'id de l'utilisateur, et rien d'autre Smile
Car en faites là, ma fonction returne vrai ou faux, et ensuite je lui assigne un cookie en fonction de ce que me rend la fonction login, et dans le cookie seul l'uid sera sauvegarder, après pour avoir son status, je pense utiliser les sessions Smile

Voila, j'ai essayé le code que tu as passé, mais le password crypté n'est pas du tous le même que celui qui est inscrit dans ma base de donnée :s
Il ne me génère jamais le bon password en crypté :s

Voiçi
15-01-2007, 10:42,
#6
RE: Cryptage des password ?
bon, je viens de jeter un oeil dans le code et je pense que inc/functions_user.php peut t'intéresser, il contient tout ce qui permet de gérer le login.
Code :
/**
* Checks a password with a supplied uid.
*
* @param int The user id.
* @param string The md5()'ed password.
* @param string An optional user data array.
* @return boolean|array False when not valid, user data array when valid.
*/
function validate_password_from_uid($uid, $password, $user = array())
{
    global $db, $mybb;
    if($mybb->user['uid'] == $uid)
    {
        $user = $mybb->user;
    }
    if(!$user['password'])
    {
        $query = $db->query("SELECT uid,username,password,salt,loginkey FROM ".TABLE_PREFIX."users WHERE uid='".intval($uid)."' LIMIT 1");
        $user = $db->fetch_array($query);
    }
    if(!$user['salt'])
    {
        // Generate a salt for this user and assume the password stored in db is a plain md5 password
        $user['salt'] = generate_salt();
        $user['password'] = salt_password($user['password'], $user['salt']);
        $sql_array = array(
            "salt" => $user['salt'],
            "password" => $user['password']
        );
        $db->update_query(TABLE_PREFIX."users", $sql_array, "uid = ".$user['uid'], 1);
    }

    if(!$user['loginkey'])
    {
        $user['loginkey'] = generate_loginkey();
        $sql_array = array(
            "loginkey" => $user['loginkey']
        );
        $db->update_query(TABLE_PREFIX."users", $sql_array, "uid = ".$user['uid'], 1);
    }
    if(salt_password(md5($password), $user['salt']) == $user['password'])
    {
        return $user;
    }
    else
    {
        return false;
    }
}
et la fonction salt_password est:
Code :
function salt_password($password, $salt)
{
    return md5(md5($salt).$password);
}
Ca nous donne donc md5(md5($salt).md5($pass))

15-01-2007, 13:10,
#7
RE: Cryptage des password ?
Ok, merci je teste ça dans la soirée Smile
16-01-2007, 20:36,
#8
RE: Cryptage des password ?
Là jje comprend vraiment rien à rien :s
J'ai repris le bout de code de Crazy Cat, et j'ai toujours pas le même password dans ma base de donnée, et le résultat de la fonction :s

Voici mon code :
Code :
$sql = mysql_query("SELECT password, salt FROM mybb_users WHERE username='$pseudo'") or die (mysql_error());
list($too, $salt)=mysql_fetch_array($sql);
echo $salt.'<br />';
echo"Salt = CbHO12Dt<br />";
$pass = salt_password($password, $salt);
echo $pass.'<br />';
echo $too;

Le dernier echo est donc pour l'affichage du password qui est dans la base de donnée, et ce n'est pas du tous le même, celui qui est générer par la fonction salt_password lui est :
Citation :c3367431d39bd5e82e9cf63ce8a23e5d : Celui enregistrer dans la base de donnée
02337b69b7e9e8a7577f83636c180b59 : Celui qui est généré par la fonction salt_password

Donc j'aimerai bien savoir si quelqu'un avait réussi à integer mybb à son site, car là je comprend vraiment pas comment son crypté les mots de passes, car à chaque fois il ne concorde jamais :'(
16-01-2007, 21:21,
#9
RE: Cryptage des password ?
Si c'est pour intégrer mybb à un site, pourquoi n'appelles-tu pas directement les systèmes de gestion de mybb?
Dans le fichier précité, tu as toutes les fonctions utiles pour vérifier qu'un utilisateur est loggé ou pas.

16-01-2007, 22:43,
#10
RE: Cryptage des password ?
Parce que je veux utiliser mes propres cookie, car le forum servira à la fois pour mon équipe de jeux vidéos, et je veux pas qu'il soit loggé en même temps sur les deux sites Smile
Car lors de leur première connexion sur le site, je fais une entrée dans une table pour sauvegarder certainnes informations, et donc je ne voudrais pas sauvegarder des infos d'un membre qui n'est jamais venu Smile

Et ça permet d'éviter aux membres de devoir s'inscrire deux fois, à la fois sur le site et sur le forum Smile
Mais ce que je comprend pas, c'est pourquoi il n'arrive pas à bien me crypter les mots de passes
16-01-2007, 23:41,
#11
RE: Cryptage des password ?
heu, question stupide (j'ai peur de la réponse): tu envoyais $password en clair?
Si oui, c'est logique, je pensais que tu partais de ce qui est dans la base, donc le pass déjà en md5.

En fait, je n'avais pas compris ce que tu voulais faire, c'est avec ton avant-dernier message que j'ai compris: un secon système de login basé sur les données de mybb.

17-01-2007, 12:18,
#12
RE: Cryptage des password ?
Oui, au début password n'est pas crypté Rolleyes, il provient d'un formulaire, et se faisait crypté que par la fonction salt_password Smile




Utilisateur(s) parcourant ce sujet : 2 visiteur(s)

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique