md5 vs sha1

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : md5 vs sha1

Re: md5 vs sha1

par AB » 15 janv. 2011, 23:31

le code JS je suis "contre" du fait des différences navigateur et que si un gus arrive sans SJ ça ne fonctionne plus (vieux souvenir de recherche de drivers en console sur le site de nvidia ;) ).
Ce sont des lib javascript externes qui permettent de hasher en sha1 donc à priori le résultat sera compatible avec les différents navigateurs.

Sinon il doit être rare maintenant que les utilisateurs n'activent pas javascript car avec la mode du ajax, ça doit les vacciner...
Cela dit, j'utilise cette méthode principalement pour les connexions administrateurs, donc pour un public réservé, et puis comme leur interface d'administration utilise assez souvent javascript, ça ne me pose pas de problème (et eux non plus) d'avoir nécessairement javascript activé.

Re: md5 vs sha1

par moogli » 15 janv. 2011, 18:38

hum wé ça évite le snif des paquets sur le réseau, pour le coté déontologie oui pourquoi pas je n'y avais pas penser sur ce point la ;)

le code JS je suis "contre" du fait des différences navigateur et que si un gus arrive sans SJ ça ne fonctionne plus (vieux souvenir de recherche de drivers en console sur le site de nvidia ;) ).

Je suis très dubitatif sur la chose, mais bon sha1 / md5 étant simple d'utilisation avec php y a pas de raison de s'en passer (utilisable avec mysql aussi remarque).

je vais continuer à utiliser sha1 + sel quand même :)


@+

Re: md5 vs sha1

par AB » 15 janv. 2011, 18:09

Oui mais ce n'est pas parce qu'une méthode de piratage est plus à craindre qu'une autre, qu'il faut négliger l'autre.

Déjà, déontologiquement, un administrateur n'a pas à connaître le mot de passe d'un visiteur. Et en complément si la base se fait pirater, le mal sera moindre.

D'autre part concernant le formulaire, rien ne t'empêche de hasher, en javascript, les mots de passe saisis (concaténé à un sel pour un maximum de sécurité) avant de les transmettre dans le post du formulaire.

Re: md5 vs sha1

par moogli » 15 janv. 2011, 17:44

hum question à 3 francs 6 sous ;)

Est il vraiment utile de hasher / crypter des mots de passes dans le contexte web en dehors du fait que la récupération d'un dump sera inutilisable.
L'accès a l'administration d'un site web se fait en général par les formulaire de connexion et donc un brute force sur le formulaire est à mon avis plus a craindre qu'une tentative d'accès direct sur la base ?

enfin voila j'ai rien contre une explication de l'utilité extrême de la chose :d

@+

Re: md5 vs sha1

par AB » 15 janv. 2011, 17:15

Si tu veux augmenter les performances du sha1 tu peux utiliser la fonction hash disponible depuis php >= 5.1.2

$hash_valeur = hash("sha256",$valeur);

Re: md5 vs sha1

par Hywan » 15 janv. 2011, 12:40

C'est plus long à décoder, c'est tout :-).

Re: md5 vs sha1

par zounounous » 15 janv. 2011, 10:57

Question bête, mais faire un :

Code : Tout sélectionner

sha1(md5($pass));
C'est pertinent ?

Re: md5 vs sha1

par Cristian » 15 janv. 2011, 08:43

Moi j'utilise cette methode...
	function hashPassword($password)
{
  $salt = "0sqddf2sds5f65efsd2ds35f16gdf6";
  //encrypt the password, rotate characters by length of original password
  $len = strlen($password);
  $password = md5($password);
  $password = rotateHEX($password,$len);
  return md5($salt.$password);
}

function rotateHEX($string, $n)
{
  //for more security, randomize this string
  $chars="abcdef1234567890";
  $str="";
  for ($i=0;$i<strlen($string);$i++)
  {
    $pos = strpos($chars,$string[$i]);
    $pos += $n;
    if ($pos>=strlen($chars))
      $pos = $pos % strlen($chars);
    $str.=$chars[$pos];
  }
  return $str;
}

$login = hashPassword($_POST['login']);
$password = hashPassword($_POST['password']);

par Hywan » 18 nov. 2008, 20:48

Oui j'avais vu mais pas j'ai pas jugé utile d'éditer mon message car cela n'aurait rien apporté pour la compréhension du sujet abordé (et puis on en voit tellement des fautes...).
Je ne te fais pas de reproche hein, ça m'étonnait juste que tu utilises des drogues :lol:.

Et tout à fait d'accord avec le reste de ton message :).

par AB » 18 nov. 2008, 20:37

Qu'on soit d'accord : pour le cryptage de mot de passe. Car s'il est question d'avoir un identifiant unique pour une session, une image uploadé ou ce genre de chose, md5 serait presque à préférer vu que sa taille est plus petite :). N'oublions pas le contexte.

Sans moquerie :
Et puis ont peux
pourtant il n'est pas tard. Que nous vaut ces belles fautes :roll:.

:)
Oui j'avais vu mais pas j'ai pas jugé utile d'éditer mon message car cela n'aurait rien apporté pour la compréhension du sujet abordé (et puis on en voit tellement des fautes...).

La revanche :
Par contre si j'avais employé le terme de cryptage en parlant de md5, je me serais dépêché de corriger mon message car pour le coup cela peut induire en erreur le néophyte qui pourra chercher longtemps la fonction inverse de décryptage.
C'est pour cette raison qu'il faut bien distinguer hachage et cryptage :P N'oublions pas le contexte :lol:

par @rthur » 18 nov. 2008, 19:37

Donc pour conclure avec ou sans sel, n'utilisez pas md5 si vous avez la possibilité d'utiliser SHA1.
Qu'on soit d'accord : pour le cryptage de mot de passe. Car s'il est question d'avoir un identifiant unique pour une session, une image uploadé ou ce genre de chose, md5 serait presque à préférer vu que sa taille est plus petite :). N'oublions pas le contexte.
Tout à fait n'oublions pas le contexte, en l'occurrence depuis le début du sujet on parle bien de sécurité pour des mots de passe.

par Hywan » 18 nov. 2008, 19:28

Donc pour conclure avec ou sans sel, n'utilisez pas md5 si vous avez la possibilité d'utiliser SHA1.
Qu'on soit d'accord : pour le cryptage de mot de passe. Car s'il est question d'avoir un identifiant unique pour une session, une image uploadé ou ce genre de chose, md5 serait presque à préférer vu que sa taille est plus petite :). N'oublions pas le contexte.

Sans moquerie :
Et puis ont peux
pourtant il n'est pas tard. Que nous vaut ces belles fautes :roll:.

:)

par @rthur » 18 nov. 2008, 13:52

Et j'en viens à ce qu'à dit @rthur : « Les rainbow tables permettent de casser un md5 en moins d'une seconde » … euh, c'est un peu court quand même. Pour comparer des millions de valeurs, c'est un peu léger non ? Enfin, si c'est en local, peut-être, mais avec 32 octets, on a le temps de voir les tests s'enchaîner non ?
Tout dépend de la puissance de ton serveur et de la complexité de ton mot de passe.

Comme cela fonctionne par dictionnaire et que + de 90% des utilisateurs utilisent un mot de passe "commun" c'est à dire un prénom, un nom commun, un nom d'animal de compagnie, de héros de dessin animé, une date de naissance ou un code à quatre chiffre ou encore une plaque d'immatriculation, c'est pas très compliqué de trouver en moins d'une seconde 90% des mots de passe MD5.
Après il y a les quelques utilisateurs qui mettent des mots de passe complexes alternant lettres, chiffres et caractère spéciaux où là c'est un peu plus long... mais comme des services de calculs distribués existent déjà pour brute-forcer l'ensemble des combinaisons possibles...
http://www.freerainbowtables.com

Donc pour conclure avec ou sans sel, n'utilisez pas md5 si vous avez la possibilité d'utiliser SHA1.

par AB » 18 nov. 2008, 10:53

sha1 a été conçu pour améliorer les performances du md5.

Donc à mon avis (excepté pour des raisons de compatibilité avec un script utilisant déjà un algo de hashage), pour tout nouveau développement, la question du choix ne se pose pas.

Et puis ont peux tout aussi bien faire sa propre cuisine avec sha1 qu'avec md5...

par zeus » 18 nov. 2008, 10:26

Modération :
Mathieu68, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.