• 06 Juin 2026, 10:34:21


Auteur Sujet: Eviter de "hasher" le password  (Lu 2302 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Eviter de "hasher" le password
« le: 30 Juin 2008, 21:00:30 »
Bonjour,

J'ai la commande /register sur mon serveur mais ca hash automatiquement le mot de passe dans son fichier.

dcmd_register(playerid, params[])
{
    if(PLAYERLIST_authed[playerid]) return SystemMessage(playerid, "Tu est deja loggé");
    if(udb_Exists(PName(playerid))) return SystemMessage(playerid, "Compte déja enregistré. Fait /login password.");
    if(strlen(params) == 0) return SystemMessage(playerid, "Usage correct : /register password");
    if(udb_Create(PName(playerid), params)) return SystemMessage(playerid, "Compte crée ! Tu est automatiquement loggé.");

return true;
}

Comment eviter ca ??

++
nikko

Hors ligne momo77190

  • *
  • Tueur en série
  • Messages: 184
    • Voir le profil
    • GTABOMB
Re : Eviter de "hasher" le password
« Réponse #1 le: 30 Juin 2008, 21:59:11 »
que veut tu dire par "hasher" ?

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Eviter de "hasher" le password
« Réponse #2 le: 30 Juin 2008, 22:04:44 »
"hasher" = un mot de passe en hash = un mot de passe crypter

++
nikko

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Eviter de "hasher" le password
« Réponse #3 le: 30 Juin 2008, 23:02:50 »
Salut,

ce que tu veut faire est très déconseillé (bien que cette protection soit un peu useless...), mais si tu y tient vraiment (hackz0r ;D) regardes dans ton include où il y a la fonction, dudb, tu va avoir ça :

Code: (pawn) [Sélectionner]
stock udb_Create(nickname[],pwd[]) {
  if (udb_Exists(nickname)) return false;
  new fname[MAX_STRING];
  format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
  dini_Create(fname);
  udb_UserSetInt(nickname,"password_hash",udb_hash(pwd));
  return true;
}

Tu remplaces udb_hash(pwd) par pwd.


++
Alexandre

Hors ligne kikite02

  • ;-)
  • *
  • Tueur en série
  • Messages: 119
    • Voir le profil
Re : Eviter de "hasher" le password
« Réponse #4 le: 01 Juillet 2008, 18:08:31 »
j'ai le mm code que nikko pas de password hash dans le code

je voit pas comment il on fait : /

Hors ligne Lites

  • *
  • Criminel
  • Messages: 35
    • Voir le profil
Re : Eviter de "hasher" le password
« Réponse #5 le: 10 Août 2008, 00:35:21 »
Bonsoir ,
Le même probléme qui peut m'aidez svp
Je dit toujour ce que j'ai a dire !
Je ne cache rien !
(Admin : Et moi je cache ta signature qui n'est pas très correcte)

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Eviter de "hasher" le password
« Réponse #6 le: 10 Août 2008, 16:01:30 »
Vous savez pas lire ? :ninja

Hors ligne Lites

  • *
  • Criminel
  • Messages: 35
    • Voir le profil
Re : Eviter de "hasher" le password
« Réponse #7 le: 11 Août 2008, 17:36:09 »
Mais j'ai pas le même code que toi
Je dit toujour ce que j'ai a dire !
Je ne cache rien !
(Admin : Et moi je cache ta signature qui n'est pas très correcte)

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Eviter de "hasher" le password
« Réponse #8 le: 13 Août 2008, 22:15:33 »
Et bien envoies ton code, je verrais.

Hors ligne Lites

  • *
  • Criminel
  • Messages: 35
    • Voir le profil
Re : Eviter de "hasher" le password
« Réponse #9 le: 14 Août 2008, 00:18:34 »
dcmd_register(playerid, params[])
{

    if(PLAYERLIST_authed[playerid]) return SystemMessage(playerid, "Déja Register.");
    if(udb_Exists(PlayerName(playerid))) return SystemMessage(playerid, "Ce Compte Existe Déja, Stp Tape '/login '.");
    if(strlen(params) == 0) return SystemMessage(playerid, "Orthographe: '/register '");
    if(udb_Create(PlayerName(playerid), params)) return SystemMessage(playerid, "Compte Bien Creer. Tape '/login'.");
    return true;
}



dcmd_login(playerid, params[])
{


    if(PLAYERLIST_authed[playerid]) return SystemMessage(playerid, "Deja Logge.");
    if(!udb_Exists(PlayerName(playerid))) return SystemMessage(playerid, "Ton Compte Existe Pas, stp creer le '/register'.");
    if(strlen(params) == 0) return SystemMessage(playerid, "Othographe: '/login '");
    if(udb_CheckLogin(PlayerName(playerid), params))
{
    PLAYERLIST_authed[playerid] = true;
    return SystemMessage(playerid, "T'est Bien logger");
    }
    return SystemMessage(playerid, "Mauvais Mot De Passe");
}
Je dit toujour ce que j'ai a dire !
Je ne cache rien !
(Admin : Et moi je cache ta signature qui n'est pas très correcte)

Hors ligne MasterOfQuebec

  • Pawn Compiler
  • *
  • Criminel
  • Messages: 29
    • Voir le profil
    • SA-MP.fr
Re : Re : Eviter de "hasher" le password
« Réponse #10 le: 15 Août 2008, 04:18:54 »
Je ne sais pas si j'ai bien compris ce que vous vous voulez mais je crois que c'est ceci:
Hash (simplement utiliser udb_hash):
stock udb_Create(nickname[],pwd[]) {
if (udb_Exists(nickname)) return false;
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
dini_Create(fname);
udb_UserSetInt(nickname,"password_hash",pwd);
return true;
}

Pas de Hash (mot de passe et nom):
stock udb_Create(nickname[],pwd[]) {
if (udb_Exists(nickname)) return false;
new fname[MAX_STRING];
format(fname,sizeof(fname),"%s.dudb.sav",udb_encode(nickname));
dini_Create(fname);
udb_UserSetInt(nickname,"password_hash",pwd); //Encoder les caractères pour prévenir des éventuelles erreurs avec udb_encode?
return true;
}
Je crois qu'il vous faudra aussi modifier la fonction qui vérifie la correspondance du mot de passe lors de la connexion car la fonction encodera le mot de passe par l'utilisateur pour comparer par la suite les 2 mots de passe encodés.

Notez que je conseil de laisser les mots de passe hasher car ceci complique le travail des utilisateurs voulant savoir les mots de passe des autres utilisateurs.
Pour éviter des éventuelles failles je conseil aussi de vérifier que le mot de passe ne dépasse pas un certain nombre de caractères (par exemple la faille qu'il y a eu dans le mode Pen1).