Cryptage mot de passe

biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010 - 14 févr. 2008 à 14:21
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 - 16 juin 2010 à 07:09
Bonjour à tous,
j'aimerais avoir un éclairement lol :
j'ai une base de données avec un table membre et comme tout espace membre qui se respect, il y a des mots de passe
cependant, je ne sais pas quelle méthode utiliser pour crypter le mot de passe :
j'ai vu sur ma base de données diverses options tel que :
MD5 (inconvéniant : trop facil à décrypter, de nombreux sites proposent le décryptage!!)
PASSWORD
OLD_PASSWORD
SHA1
ENCRYPT
COMPRESS

voilà les diverses options que j'ai à ma disposition, mais je ne sais trop laquelle prendre
Laquelle vous me conseilleriez?

15 réponses

kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
15 juin 2010 à 21:25
Salut Pysco68,

J'ai bien saisi l'aspect didactique de ton post, cela étant :

Je pense qu'il faut arrêter de faire "plus que meilleur mieux" qui au final s'avère dans 90 % des cas "plus pire que moins bon"

Je suis d'accord avec toi :
l'ajout de sel => impératif car, comme tu le fais remarquer très justement, il devient "assez" simple de craquer ce type de hachage.

Je ne suis pas d'accord :
je te conseille vivement de voir plus grand SHA256
md5( md5($chaine_a_crypter) . "un petit peux de sel")
sha1(md5($chaine) . $sel . substr(md5($chaine . $sel), 0, 16))


Franchement c'est de la perte de perfs pour rien.

md5($chaine_a_crypter . "un petit peux de sel");

Cela est largement suffisant dans 95 % des cas.

Cela ne s'applique bien évidemment pas à toi, mais je lis un nombre impressionnant de posts qui souhaitent complexifier à outrance le hachage des mots de passe, avec des trucs tous plus hallucinants les uns que les autres ... le gros hic est que ces mêmes personnes laissent des failles incroyables sur leurs sites :
- aucun contrôle de la complexité du pass, et je ne parle pas des "admin/admin" ou autres que l'on trouve à foison
- injections sql
- pas de contrôle des données utilisateurs (post, get,...)
... je fais bref, car même avec le peu que je connaisse il me faudrait 3 heures pour énoncer toutes ces failles

Il faut également resituer les choses :
- on développe un site bancaire => on utilise les technologies de cryptage les plus avancées, les connexions sécurisées, etc ...
- on développe un site bien en deçà de fesses bouc => on ne sera pas attaqué par les moyens de la CIA et on privilégie alors une sécurité en rapport


Cordialement,


Kohntark -
1
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
16 juin 2010 à 00:55
mais bon j'ai quand meme appris plein de trucs sur le cryptage, je regrette pas.

C'est essentiel d'apprendre, et personne ne peut se venter d'avoir fait le tour

@pysco68 :
Ca ne m'étonne pas : nous sommes d'accord
Pour la perte de perfs je ne suis pas trop étonné non plus, je ne voulais pas faire le jeu involontaire des aficionados du milliardième de seconde.
Sur 2000 itérations :
md5 "simple" : 0.00434
seconde fonction : 0.0181

La différence est plus que négligeable, même si sur 2000 itérations elle est sensible.

Le but de mon propos était double, et ça ne t'auras pas échappé :
- penser que md5 est dépassé est une aberration (avec salt j'entends)
- le choix de la méthode de hash du pass est très souvent négligeable face aux multiples autres failles qui permettent de pénétrer un site.
... ces autres failles étant quant à elles bien plus complexes à appréhender.


Bonne fin de soirée (nuit ?),


Kohntark -
1
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
14 févr. 2008 à 17:18
j'utilise md5 à 80%

mais j'ai fait mumuse avec du sha1 pour L2J qui propose un serveur pour le jeu Lineage II
as tu une adresse pour decrypter le md5 ? ça m'interesse ...

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010
14 févr. 2008 à 22:21
par exemple celui la :
http://decrypt.vanvan.cc/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
GHAZJAMEL Messages postés 10 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 1 septembre 2009
1 sept. 2009 à 12:32
0
tetesky Messages postés 9 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 6 novembre 2010 1
15 juin 2010 à 19:38
il y a aussi la fonction crypt() en php

programmer, programmer, programmer, mais ya pas que ca !!!
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 juin 2010 à 20:06
Bonsoir,

le tout dépends de ce que tu souhaite faire;

le mot de passe doit être retrouvable (pas conseillé coté sécurité) il te faut un vrai cryptage, si possible quelque chose de "fort" tel que AES/Twofish/Blowfish avec de grandes clefs (256 bits ou plus). Le tout bien-sur à condition de bien sécuriser le serveur en lui même pour ne pas rendre le vol de la clef trop facile...

si le tout doit être a "sens unique" (cad toujours "chaine d'origine --> chaine hachée") tu peux utiliser des algos tels que MD5/SHA1, mais je te conseille vivement de voir plus grand SHA256 (voir la fonction PHP "hash()").

De plus il est conseillé de "saler" la chaine que l'on souhaite crypter... je m'explique:

MD5 est connu pour être faible ces dernières années... avec un peux d'infrastructure (dixit une bonne CG) on peux craquer les chaines et retrouver l'original... par contre admettons que que lors du "cryptage" je fasse la chose suivante:

md5( md5($chaine_a_crypter) . "un petit peux de sel")

Dans ce cas il s'agirait de retrouver tout d'abord la chaine du 1er MD5, puis de séparer le second Hash du "Sel" et a recalculer le second hash...

Tu peux compliquer le système à volonté.

Encore un exemple:

sha1(md5($chaine) . $sel . substr(md5($chaine . $sel), 0, 16))

Enfin... je m'arrête :P

Bonne chance,
j'espère que ca t'avance un peux


- Pysco68
0
tetesky Messages postés 9 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 6 novembre 2010 1
15 juin 2010 à 20:22
mais moi le voulais stocker un mot de passe d'un utilisateur dans une base de donné en cryptant se mot de passe et lors de la connexion du membre décrypter le mot de passe.
Repond moi vite

programmer, programmer, programmer, mais ya pas que ca !!!
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 juin 2010 à 20:28
C'est le pire truc à faire, de décrypter....

pourquoi ne pas plutôt comparer deux chaines cryptées??
Si les originaux sont identiques, les chaines hashées le seront aussi ;)

Ça évite des transferts non sécurisés avec des textes en clair...

Compris?

- Pysco68
0
tetesky Messages postés 9 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 6 novembre 2010 1
15 juin 2010 à 21:09
j'ai trouvé, j'ai creer mon propre systeme de cryptage et avec un algorithme je peux afficher l'originale

programmer, programmer, programmer, mais ya pas que ca !!!
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 juin 2010 à 21:24
Bien, mais pourquoi veux-tu réafficher l'original??


- Pysco68
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 juin 2010 à 21:52
Bonsoir Konthark,

tu tape de nouveau dans le mille, mais cela dit, en ce qui concerne la "perte de perf", j'ai bien peur que ce ne soit pas une réalité... pas au niveau ou je l'ai montré (je parle du deuxième exemple), petit bench à l'appui, j'en arrive à: 271672 itérations avec md5 seul (moyenne de 5 essais), et à 240645 avec la seconde fonction.

Test effectué: nombre d'itérations en 2s de temps d'exécution;
code:
<?php
set_time_limit(2);

$salt 	= "d67c5cbf5b01c9f91932e3b8def5e5f8";
$chain 	= "ceci est un test";
$i 		= 0;
while(true){
$r = sha1(md5($chain) . $salt . substr(md5($chain . $salt), 0, 16));
//$r = md5($chain . $salt);
echo $i++;
}
?>


Le tout ayant tourné sur un P3 800Mhz sous Debian... donc rien d'extraordinaire...

Concernant les 95% des cas ou "ca suffit" - certes, et bien-sur(!) il faut aussi protéger le reste du site... mais c'est un bon début de se soucier de ces choses, et il faut en parler aussi :P

Bonne soirée,
Bien Cordialement,
- Pysco68

P.S.: puis vaut mieux un peux trop que juste pas assez :P
0
tetesky Messages postés 9 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 6 novembre 2010 1
15 juin 2010 à 22:13
et bien justement je vien de comprendre que sa servait a rien

mais bon j'ai quand meme appris plein de trucs sur le cryptage, je regrette pas.

programmer, programmer, programmer, mais ya pas que ca !!!
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
16 juin 2010 à 07:09
Accordé ;)

Bonne journée!
- Pysco68
0
pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
15 juin 2010 à 22:15
Content d'avoir pu aider ;)

Amuse toi bien!
- Pysco68

P.S.: accepte les bonnes réponses, comme ca ca aidera les prochains qui chercherons à trouver les bonnes réponses!
-1
Rejoignez-nous