Fonction Md5

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 : Fonction Md5

par Ryle » 18 juin 2009, 18:10

Et pourquoi ne pas faire une méthode qui ferait appel à md5 6 fois de suite, puis appelerait ensuite sha 14 fois ? Comme ça on est vraiment sur de sécuriser à mort non ? :)

Quoi qu'on peut aussi faire appel à md5 26 fois, et à sha 42 fois... ou mieux encore, alterner 73 appels de md5 avec 432 appels à sha !

Bon, alors bien sur, va falloir 3h pour chiffrer le mot de passe pour pouvoir le stocker en base et autant lors de l'authentification d'un utilisateur pour les comparer, mais question sécurité, tu trouveras pas mieux ! :)

...

sauf si tu fais 806 appels à md5 puis... 8-|

par AB » 18 juin 2009, 15:35

Parce que :
  public function setPassword($password)
  {
    $salt = md5(rand(100000, 999999).$this->getEmail());
    $this->setSalt($salt);
    $this->setSha1Password(sha1($salt.$password));
  }
C'est dans un tutoriel symfony alors je c'est ce que je fais maintenant disons que la c'est sécurisé on ne peut mieux. Non ?
Bof ce n'est pas le fait que le salt soit hashé en md5 plutôt qu'en sha1 qui fait la sécurité de la fonction.

par agité » 18 juin 2009, 15:16

Parce que :
  public function setPassword($password)
  {
    $salt = md5(rand(100000, 999999).$this->getEmail());
    $this->setSalt($salt);
    $this->setSha1Password(sha1($salt.$password));
  }
C'est dans un tutoriel symfony alors je c'est ce que je fais maintenant disons que la c'est sécurisé on ne peut mieux. Non ?

par AB » 18 juin 2009, 15:02

bonjour à tous messieurs!!!

tout d'abord, merci de votre aide.
alors j'ai utilisé la fonction md5(), mais au vu de ce que vous avez dis, est ce que cela suffit ou pas?
après, dans ma base de données, je vois pas de MdP en clair, donc je pense que ça doit suffire.

mais j'aimerais comprendre la différen,ce entre md5() et sha1(), l'un crypte, l'autre hashe, donc avec la fonction de cryptage, il y à une "réciprocité", donc possibilité de retrouver le MdP, et avec l'autre, le mot de passe est hashé, donc il faut en générer un nouveau...
personnellement, j'ai utilisé la 2nd méthode (sans savoir si c'est la meilleure ou pas...), et j'ai fais un formulaire de renvoi d'un MdP automatique lorsque l'utilisateur à perdu son MdP, MdP généré aléatoirement par un algo PHP!!!

que choisir?
md5() et sha1() retournent tout deux une chaîne hachée mais avec deux algorithme différents sha1() étant plus recommandé que son frère md5() mais le mieux étant d'utiliser les 2.

Pour crypter un mot de passe c'est différents tu peux utiliser des fonctions de cryptage.

Je te conseil d'utiliser sha1() et md5() avec cela le sel qui va bien et tout sera ok pour toi.
Encore une fois, sha1() - hash sur 40 caractères - a été conçu pour améliorer les performances du md5() - hash sur 32 caractères . Donc sauf en cas de besoin de compatibilité avec d'anciens scripts utilisant le md5(), il est recommandé d'utiliser sha1().

Je vois pas d'intérêt à utiliser conjointement les deux.

par agité » 18 juin 2009, 12:03

bonjour à tous messieurs!!!

tout d'abord, merci de votre aide.
alors j'ai utilisé la fonction md5(), mais au vu de ce que vous avez dis, est ce que cela suffit ou pas?
après, dans ma base de données, je vois pas de MdP en clair, donc je pense que ça doit suffire.

mais j'aimerais comprendre la différen,ce entre md5() et sha1(), l'un crypte, l'autre hashe, donc avec la fonction de cryptage, il y à une "réciprocité", donc possibilité de retrouver le MdP, et avec l'autre, le mot de passe est hashé, donc il faut en générer un nouveau...
personnellement, j'ai utilisé la 2nd méthode (sans savoir si c'est la meilleure ou pas...), et j'ai fais un formulaire de renvoi d'un MdP automatique lorsque l'utilisateur à perdu son MdP, MdP généré aléatoirement par un algo PHP!!!

que choisir?
md5() et sha1() retournent tout deux une chaîne hachée mais avec deux algorithme différents sha1() étant plus recommandé que son frère md5() mais le mieux étant d'utiliser les 2.

Pour crypter un mot de passe c'est différents tu peux utiliser des fonctions de cryptage.

Je te conseil d'utiliser sha1() et md5() avec cela le sel qui va bien et tout sera ok pour toi.

par Freddo31 » 18 juin 2009, 11:02

bonjour à tous messieurs!!!

tout d'abord, merci de votre aide.
alors j'ai utilisé la fonction md5(), mais au vu de ce que vous avez dis, est ce que cela suffit ou pas?
après, dans ma base de données, je vois pas de MdP en clair, donc je pense que ça doit suffire.

mais j'aimerais comprendre la différen,ce entre md5() et sha1(), l'un crypte, l'autre hashe, donc avec la fonction de cryptage, il y à une "réciprocité", donc possibilité de retrouver le MdP, et avec l'autre, le mot de passe est hashé, donc il faut en générer un nouveau...
personnellement, j'ai utilisé la 2nd méthode (sans savoir si c'est la meilleure ou pas...), et j'ai fais un formulaire de renvoi d'un MdP automatique lorsque l'utilisateur à perdu son MdP, MdP généré aléatoirement par un algo PHP!!!

que choisir?

par AB » 17 juin 2009, 13:31

Allons allons messieurs on ajoute pas de sel à sa clef ?
C'est un autre problème, avec ou sans sel, in fine on doit bien choisir un algo de hashage ou de cryptage :wink:

Pour ceux que ça intéresse, on parle de la technique du grain de sel ici http://www.phpfrance.com/forums/voir_sujet-248069-0.php

par agité » 17 juin 2009, 10:02

LOL pour revcenir au débat, j'utiliserai plutôt sha1() au lieu de md5() mais question de choix...
+1
Etant donné que le sha1() a été conçu pour améliorer les performances du md5(), le sha1() est effectivement recommandé si l'on a pas besoin de compatibilité avec des scripts déjà existant.

Allons allons messieurs on ajoute pas de sel à sa clef ?

par AB » 16 juin 2009, 20:32

LOL pour revcenir au débat, j'utiliserai plutôt sha1() au lieu de md5() mais question de choix...
+1
Etant donné que le sha1() a été conçu pour améliorer les performances du md5(), le sha1() est effectivement recommandé si l'on a pas besoin de compatibilité avec des scripts déjà existant.

par Aureusms » 16 juin 2009, 18:51

@charabia effectivement.
Sorry j'aurais du détailler l'idée, mais comme excuse j'étais au bureau :oops:
Quoi ! Tu bosses pas!

LOL pour revcenir au débat, j'utiliserai plutôt sha1() au lieu de md5() mais question de choix...

par dunbar » 16 juin 2009, 16:51

@charabia effectivement.
Sorry j'aurais du détailler l'idée, mais comme excuse j'étais au bureau :oops:

par charabia » 16 juin 2009, 14:45

Le principe de dunbar plus détaillé est le suivant :

Lorsque le membre met son mail, la page est renvoyée vers une autre page de traitement. Cette dernière va faire quoi ?
1. créer un nouveau mot de passe aléatoire
2. un UPDATE du champ password de ta table pour remplacer l'ancien mdp par le nouveau
3. envoyer un mail au membre avec le nouveau mdp

Tu dois donc laisser la possibilité au membre de pouvoir ensuite modifier le mdp aléatoire par le sien (toujours avec un UPDATE).

par dunbar » 16 juin 2009, 14:37

ok, mais dans ce que tu dis, est-ce que c'est l'utilisateur qui rentre un nouveau mot de passe ou est-ce que c'est mon script PhP qui doit en générer un automatiquement?
Moi je dirais que tu fais en sorte de générer un nouveu mot de passe, l'utilisateur pourra le changer dans sont profil

par Freddo31 » 16 juin 2009, 14:01

ok, mais dans ce que tu dis, est-ce que c'est l'utilisateur qui rentre un nouveau mot de passe ou est-ce que c'est mon script PhP qui doit en générer un automatiquement?

par dunbar » 15 juin 2009, 20:16

si jamais on oublie le mot de passe...comment on fait pour le retrouver???
Il y a plusieurs solutions, mais par exemple a l'enregistrement de l'utilisateur tu enregistre une adresse mail, et si quelqu'un perd sont mot de passe tu crée un formulaire ou il demande un nv mot de passe, il devrat entrée sont login et tu envoie un nv pass a l'adresse mail qu'il a introduit a l'inscription.