• 28 Juin 2025, 02:05:22


Auteur Sujet: Comment hashé un string en md5 ?  (Lu 2847 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Comment hashé un string en md5 ?
« le: 20 Mai 2008, 20:48:12 »
Bonsoir,

vu que DeAmx existe et que je ne veut pas que quiconque sache les pass de mes membres, j'aimerais savoir comment crypté un apss de manière à ce qu'il soit undécryptable; :)
Quelqu'un le faisait mais je ne sais plus qui. :(

Meric d'avance de votre aide,
Alexandre.

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : Comment hashé un string en md5 ?
« Réponse #1 le: 20 Mai 2008, 22:46:20 »
Les pass de tes membres ne sont pas dans ton script normalement, donc meme avec DeAMX il peut pas retrouver les mot de passe. Sinon, Godfather a un systeme de cryptage intégré lors de l'inscription.

Hors ligne inbox

  • *
  • Tueur en série
  • Messages: 214
    • Voir le profil
    • Blog sur Gta
Re : Comment hashé un string en md5 ?
« Réponse #2 le: 20 Mai 2008, 22:55:53 »
Salut,

Voici un exmple

if (!dini_Exists(udb_encode(playername))) {
dini_Create(udb_encode(playername));
dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));

Le script entier
if(strcmp(cmd, "/reg", true) == 0) {
    tmp = dini_Get(FILE_SETTINGS, "register");
if (strval(tmp) == 0) {
    SendClientMessage(playerid, COLOR_RED, "* l'enregistrement au serveur n'est plus possible.");
    return 1;
}
tmp = dini_Get(FILE_SETTINGS, "maxusers");
tmp2 = dini_Get(FILE_TOTALSTAT, "users");
if (strval(tmp2) >= strval(tmp)) {
    SendClientMessage(playerid, COLOR_RED, "* La limite d'utilisateur est au maximum (enregistrement impossible).");
    return 1;
}

    tmp = strtok(cmdtext, idx);

  GetPlayerName(playerid, playername, sizeof(playername));

        if(20 < strlen(tmp) || strlen(tmp) < 5) {
SendClientMessage(playerid, COLOR_YELLOW, "* Tapez un mot de passe de 5 a 20 caractères.");
return 1;
}

    if(!strlen(tmp))
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /reg [Passe]");

else {
if (!dini_Exists(udb_encode(playername))) {
dini_Create(udb_encode(playername));
dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
tmp2 = dini_Get(FILE_SETTINGS, "defaultprotection");
dini_IntSet(udb_encode(playername), "protection", strval(tmp2));
dini_Set(udb_encode(playername), "x", "x");
    dini_Set(udb_encode(playername), "y", "y");
    dini_Set(udb_encode(playername), "z", "z");
    dini_Set(udb_encode(playername), "level", "0");
                if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
                tmp2 = dini_Get(FILE_TOTALSTAT, "users");
dini_IntSet(FILE_TOTALSTAT, "users", strval(tmp2)+1);
format(string, sizeof(string), "--- %s (id: %d) Compte crée. Mot de passe: %s.", playername, playerid, tmp);
printf(string);
format(string, sizeof(string), "* Compte [%s] Crée Le mot de passe est: [%s]", playername, tmp);
                tmp = dini_Get(FILE_TOTALSTAT, "joueurs");
            dini_IntSet(FILE_TOTALSTAT, "joueurs", strval(tmp)+1);
SendClientMessage(playerid, COLOR_GREEN, string);
}
else {
format(string, sizeof(string), "Le Compte %s existe déjà.", playername,tmp);
SendClientMessage(playerid, COLOR_RED, string);
}
}

return 1;
}

a toi de tout modifier a ta façon pour qui soit compatible avec ton system de Membre

Cordialement,
« Modifié: 20 Mai 2008, 22:57:47 par inbox »
signature hors-normes (image trop grande)

Hors ligne Samumu

  • *
  • Grand Banditisme
  • на здоровье !
  • Messages: 609
    • Voir le profil
    • GTACup
Re : Comment hashé un string en md5 ?
« Réponse #3 le: 20 Mai 2008, 23:12:34 »
Bonsoir :)

Tu veux nécéssairement encrypter en md5? Tout dépend du niveau de cryptage que tu exiges.
Personnellement, je programmes, mais pas en pawn, et tout ce que je sais, c'est que gérer le md5 en pawn n'était pas nativement possible.
Alors, peut être qu'un encryptage sur la base d'un XOR avec une clef (string), ça suffirait (comme je le dis, ça dépend du niveau de sécurité que tu attends).
Et je pense que c'est plus facilement gérable en pawn que le md5 (après, ça n'est pas un langage que je connais).

C'est juste une suggestion, bonne soirée ;)



Sign et avatar par NV :)

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re : Re : Comment hashé un string en md5 ?
« Réponse #4 le: 20 Mai 2008, 23:17:26 »
Re,

Les pass de tes membres ne sont pas dans ton script normalement, donc meme avec DeAMX il peut pas retrouver les mot de passe. Sinon, Godfather a un systeme de cryptage intégré lors de l'inscription.

Ils sont dans scriptfiles, donc l'hébergeur peut les voir. :)
Et dans Godfather ce n'est pas à sens unique, cf: decrypt()

Salut,

Voici un exmple

if (!dini_Exists(udb_encode(playername))) {
dini_Create(udb_encode(playername));
dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));

Le script entier
if(strcmp(cmd, "/reg", true) == 0) {
    tmp = dini_Get(FILE_SETTINGS, "register");
if (strval(tmp) == 0) {
    SendClientMessage(playerid, COLOR_RED, "* l'enregistrement au serveur n'est plus possible.");
    return 1;
}
tmp = dini_Get(FILE_SETTINGS, "maxusers");
tmp2 = dini_Get(FILE_TOTALSTAT, "users");
if (strval(tmp2) >= strval(tmp)) {
    SendClientMessage(playerid, COLOR_RED, "* La limite d'utilisateur est au maximum (enregistrement impossible).");
    return 1;
}

    tmp = strtok(cmdtext, idx);

  GetPlayerName(playerid, playername, sizeof(playername));

        if(20 < strlen(tmp) || strlen(tmp) < 5) {
SendClientMessage(playerid, COLOR_YELLOW, "* Tapez un mot de passe de 5 a 20 caractères.");
return 1;
}

    if(!strlen(tmp))
SendClientMessage(playerid, COLOR_WHITE, "* USAGE: /reg [Passe]");

else {
if (!dini_Exists(udb_encode(playername))) {
dini_Create(udb_encode(playername));
dini_IntSet(udb_encode(playername), "password", udb_hash(tmp));
tmp2 = dini_Get(FILE_SETTINGS, "defaultprotection");
dini_IntSet(udb_encode(playername), "protection", strval(tmp2));
dini_Set(udb_encode(playername), "x", "x");
    dini_Set(udb_encode(playername), "y", "y");
    dini_Set(udb_encode(playername), "z", "z");
    dini_Set(udb_encode(playername), "level", "0");
                if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);
                tmp2 = dini_Get(FILE_TOTALSTAT, "users");
dini_IntSet(FILE_TOTALSTAT, "users", strval(tmp2)+1);
format(string, sizeof(string), "--- %s (id: %d) Compte crée. Mot de passe: %s.", playername, playerid, tmp);
printf(string);
format(string, sizeof(string), "* Compte [%s] Crée Le mot de passe est: [%s]", playername, tmp);
                tmp = dini_Get(FILE_TOTALSTAT, "joueurs");
            dini_IntSet(FILE_TOTALSTAT, "joueurs", strval(tmp)+1);
SendClientMessage(playerid, COLOR_GREEN, string);
}
else {
format(string, sizeof(string), "Le Compte %s existe déjà.", playername,tmp);
SendClientMessage(playerid, COLOR_RED, string);
}
}

return 1;
}

a toi de tout modifier a ta façon pour qui soit compatible avec ton system de Membre

Cordialement,

Pas à sens unique non plus. :(
http://wiki.sa-mp.com/wiki/Scripting_Functions_Old#uudecode

Bonsoir :)

Tu veux nécéssairement encrypter en md5? Tout dépend du niveau de cryptage que tu exiges.
Personnellement, je programmes, mais pas en pawn, et tout ce que je sais, c'est que gérer le md5 en pawn n'était pas nativement possible.
Alors, peut être qu'un encryptage sur la base d'un XOR avec une clef (string), ça suffirait (comme je le dis, ça dépend du niveau de sécurité que tu attends).
Et je pense que c'est plus facilement gérable en pawn que le md5 (après, ça n'est pas un langage que je connais).

C'est juste une suggestion, bonne soirée ;)

Je veut crypter à sens unique. :)
Le seul procédé qui agit ainsi est le MD5, je ne sais pas s'il y en a d'autre je ne m'y connait pas trop...
Si l'hébergeur peur voir ma fonction pour décrypter il pourra voir les pass des membres... ;D

++
Alexandre

Hors ligne Samumu

  • *
  • Grand Banditisme
  • на здоровье !
  • Messages: 609
    • Voir le profil
    • GTACup
Re : Comment hashé un string en md5 ?
« Réponse #5 le: 20 Mai 2008, 23:29:11 »
D'accord, je n'avais pas bien compris ta demande.
Quitte à hasher pour de bon, essayes de voir si l'algo SHA-1, voire SHA-256 est disponible en pawn ;)
Le SHA-1 est considéré comme un peu plus sûr (bien plus pour le SHA-256) que le md5 (bon, et en même temps, je me demande ce qu'une des plutôt rares personnes capable de cracker un md5 viendraient foutre à chercher les pass de tes membre :D)

Bonne soirée ;)



Sign et avatar par NV :)

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : Comment hashé un string en md5 ?
« Réponse #6 le: 21 Mai 2008, 14:12:11 »
Tiens, voici le contenu de mon fichier MD5-pwn.inc que j'avais récupéré sur le forum SA-MP :
http://pastebin.gtaonline.fr/pastebin.php?show=437

Il suffit de coller ça dans un fichier include (MD5-pwn.inc par exemple) et de mettre ce fichier dans le répertoire des includes.

Bien évidement il faut inclure le fichier dans le script :
#include <MD5-pwn>
Et pour hasher une chaine en MD5 :
password = MD5_Hash (password);
NB : Effectivement, comme le dit Samumu, la SHA1 ou 256 est plus sécurisé que le MDA5 mais je crois qu'il n'existe pas de script tout fait pour faire du SHA.

++
Syg
Courtesy of GtaManiac

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Comment hashé un string en md5 ?
« Réponse #7 le: 21 Mai 2008, 14:41:19 »
Je s'avais meme pas que c'était possible ....

++
nikko

Hors ligne Bayshore

  • *
  • Grand Banditisme
  • Messages: 923
    • Voir le profil
Re:
« Réponse #8 le: 22 Mai 2008, 11:21:02 »
Ah super, merci Syg !! :happy

++
Alexandre

Hors ligne spykerc8

  • *
  • 'The GTAOnline.fr GodFather'
  • Messages: 3821
    • Voir le profil
    • http://www.gtaonline.fr
Re : Comment hashé un string en md5 ?
« Réponse #9 le: 23 Mai 2008, 00:43:55 »
Il faut faire attention au fait que cet include met le résultat du hash en majuscules, ce qui n'est pas sensé être le cas pour un md5 normal.

Vous avez intérêt à vérifier ca sinon vous allez chercher longtemps pour pas grand chose :)


~ Leader honoraire de la FsK Team ~ -
~ Membre honoraire de la PCP Team ~

Co-fondateur de GTAO - Retraité de la communauté

"Nous ne sommes rien, soyons tout !"