mots de passe... - PHP - Programmation
Marsh Posté le 23-04-2003 à 22:20:09
Recherche un peu dans le forum, le sujet a été abordé plusieurs fois.
Marsh Posté le 23-04-2003 à 22:31:27
possibilité de codage avec la fonction crypt(); et possibilité d'ajouter un grain de sel pour compliquer la chose ... c'est le cryptage DES utilisé pour les compte utilisateur sous Linux.
C'est déjà costaud.
tu as aussi la possibilité de crypter avec md5() et mcrypt() il me semble mais je crois qu'il faut compiler apache avec les modules --enabled
Marsh Posté le 23-04-2003 à 22:35:54
ok merci bcp, je vais chercher de la doc sur tt ça...
Marsh Posté le 24-04-2003 à 01:10:44
Et si tu veux que ca soit vraiment sécurisé, il faut que personne ne puisse retrouver le code en clair.
Pour ça, il y a passwd de mysql (ou la fonction équivalente dans les autres bases de donnée) tu lui donnes le mot en clair et ca retourne la valeur corespondante. (pas d'algorythme de décryptage donc impossible de retrouver la valeur de départ a par par la force brupte en testant toutes les valeurs initiale possible jusqu'à tombé sur le même ensemble dde cractère une fois codé)
Pour tester la validité du mot de passe saisie par un visiteur, il faut le coder avec la même fonction et comparé les deux valeurs codées.
Attention, cette fonction s'utilise dans une requête sql et non pas directement dans le php.
Pour que l'ensemble soit sécurisé, il faut aussi utilisé ssl entre le serveur et le navigateur.
Marsh Posté le 24-04-2003 à 10:46:50
omega2 a écrit : |
faudrait m'expliquer comment ça marche alors , c'est pas aléatoire non plus sinon ça serait pas très pratique
Marsh Posté le 24-04-2003 à 10:59:06
omega2 a écrit : Et si tu veux que ca soit vraiment sécurisé, il faut que personne ne puisse retrouver le code en clair. |
crypt() fonctionne exactement de la même manière
Marsh Posté le 24-04-2003 à 10:59:18
Ca utilise des fonctions à sens unique.
Exemple de fonction à sens unique : Modulo.
Marsh Posté le 24-04-2003 à 11:39:51
simogeo a écrit : |
Je savais pas ça.
Comme sur mon site, j'ai toujours utilisé la fonction de mysql, j'ai pas trop regardé les niveaux de sécurité qu'il y avait a côté.
Tiens faire un passwd d'un crypt(), ca pourait être marrant. lol
Marsh Posté le 24-04-2003 à 12:23:58
Citation : Tiens faire un passwd d'un crypt(), ca pourait être marrant. lol |
j'y ai pensé héhé... mais bon, e suis po sur que ce soit très utile .... euh dites moi, j'ai lu que vbulletin et phpbb utilisent du md5(), c'est mieux que faire un crypt() ou po???? en fait c'est quoi exactement la différence??
Marsh Posté le 24-04-2003 à 13:08:51
Psykolio a écrit :
|
dis toi que si UNIX utilises crypt() c'est que ca tient déjà bien la route ..... fais un crypt() récursif si ca te chantes .... mais l'interêt me semble super limité
tu as la main sur le serveur ? tu es sur qu'apache est compilé avec le support md5 pour pouvoir l'utliser ?
Marsh Posté le 24-04-2003 à 13:57:37
Tiré du manuel :
Citation : crypt |
Exemple 1. Exemple avec crypt()
Code :
|
Marsh Posté le 24-04-2003 à 14:00:28
si qqun pouvait d'ailleurs m expliquer le crypt "machin,truc" j'ai pas compris pourquoi on crypte 2 choses pour les comparer au mot de passe crypté
Marsh Posté le 24-04-2003 à 14:05:24
Master_Jul a écrit : si qqun pouvait d'ailleurs m expliquer le crypt "machin,truc" j'ai pas compris pourquoi on crypte 2 choses pour les comparer au mot de passe crypté |
crypt(mot_a_crypter, grain_de_sel);
le deuxième est le grain de sel, une sorte de clef que l'on ajoute au codage. Si elle n'est pas préciser, php en génére une automatiquement me semble t'il.
Marsh Posté le 24-04-2003 à 14:05:26
Master_Jul a écrit : si qqun pouvait d'ailleurs m expliquer le crypt "machin,truc" j'ai pas compris pourquoi on crypte 2 choses pour les comparer au mot de passe crypté |
Bin crypt() est un cryptage irréversible. Bon. Mais il crypte toute le temps de la même façon, donc l'idée c'est de crypter ce qu'entre l'utilisateur avec le résultat qui est en base ; si les deux cryptages sont les mêmes c'est que le mot de passe entré est correct (peut-être à un modulo près, mais comme je connais pas l'algo de crypt(), je m'avancerai pas).
Le deuxième argument est le salt. Je ne connais pas bien ce concept donc je ne vais pas me lancer dans des trucs trop hasardeux ; je crois que c'est en fait une variable qui te permet de générer des cryptages différents pour une même chaîne. Mais franchement, je suis pas sûr
Marsh Posté le 24-04-2003 à 14:09:14
Taiche a écrit : |
c'est tout à fait cela......et le grain de sel se retrouve dans le mot de passe crypté.
Marsh Posté le 24-04-2003 à 14:10:21
simogeo a écrit : |
Marsh Posté le 24-04-2003 à 15:11:03
oki merci mais alors dans l'exemple ça marchera pas puisque le mot de passe de référence n'a pas été crypté avec le sel ?!
Marsh Posté le 24-04-2003 à 15:25:45
Master_Jul a écrit : oki merci mais alors dans l'exemple ça marchera pas puisque le mot de passe de référence n'a pas été crypté avec le sel ?! |
tout à fait
Code :
|
Marsh Posté le 23-04-2003 à 22:19:09
voilà, je compte faire un nouveau module avec une gestion de membres la plus sécurisée possible.... je travaille avec une db mysql et je code en php... j'aimerais me renseigner sur les possibilités pour coder des mots de passe, comment faire pour que ce soit le plus sur???? hum c'est une question po très précise, mais je n'y connais rien à ce niveau, alors si qq'un pouvait m'aiguiller, ce serait génial
Message édité par Psykolio le 23-04-2003 à 22:19:21
---------------
-----------------------------------