[PHP] Mot de passe sécurisé

Résolu/Fermé
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 9 oct. 2008 à 17:06
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 - 10 oct. 2008 à 15:39
Bonjour,
Le titre n'est pas claire, je sais ..

En faite j'ai crée un formulaire PHP pour que les membres de mon site puissent modifier leur mot de passe...
Le souci c'est qu'ils sont aujourd'hui libre pour la création de leur nouveau mot de passe et moi je veux (pour leur sécurité) un minimum de caractères et une politique de sécurité tel que le mot de passe doit contenir:

♠ 8 caractères minimum
♠ dans ces 8 caractères 1 chiffre et un caractère spécial au minimum

Comment procéder pour faire en sorte que ces conditions soient respecté en php ?

je pense qu'il y auras une utilisation de compteur ou pointeur ou équivalent ... non ?

7 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
9 oct. 2008 à 17:25
Le plus simple les REGEX vas voir le siteduzero.com
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
9 oct. 2008 à 17:30
Salut alain, merci je vais y jetter oeil, sa ne me dit rien ...
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
10 oct. 2008 à 09:55
Salut, maintenant passons aux chose sérieuses... :D
avec un cas concret (j'ai modifier quelques valeurs )


► 8 caractères minimum :___________if (preg_match("#[???]{8,} #", $password))

► dans ces 8 caractères 3 chiffre :____if (preg_match("#[0-9]{3,}#", $password))

► un caractère spécial au minimum :___if (preg_match("#[À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Œ Š þ Ù Ú Û Ü Ý Ÿ à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø œ š Þ ù ú û ü ý ÿ]{1,}#", $password))



Pourriez vous m'aidez s'il vous plait?

Comment dire "n'importe quelle caractère" -> pour le premier regex?
Et comment dire "caractère speciaux" pour le dernier regex ? il m'en manque plein !!

Merci
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
10 oct. 2008 à 10:31
en faite aucun de mes regex n'est fait ...


► if(preg_match("#[0-9]{3,}#",$variable))

Si ma $variable = to123toto ► Sa me retourne vrais .
Si ma $variable = to1to2to3 ► Sa me retourne faux !

j'ai pourtant trois chiffres :s ...
0

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

Posez votre question
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
10 oct. 2008 à 11:38
C'est presque bon ... et dire que je n'ai jamais fait de php !! sa va sa reste comprehensible :)

condition 1:
if(preg_match("#\d{1}.*\d{1}.*\d{1}#",$variable))

condition 2:
if(strlen($variable)>=8) // tout simplement


condition 3:

►un caractère spécial au minimum ..... je sèche .. :(
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
10 oct. 2008 à 15:14
je me suis fait ma propre expression qui marche plutôt bien :



[\é|\â|\ä|\à|\å|\ç|\ê|\ë|\è|\ï|\î|\æ|\Æ|\ô|\ö|\ò|\û|\ù|\ÿ|\Ö|\Ü|\ø|\£|\ƒ|\í|\ó|\ú|\ñ|\Ñ|\ª|\º|\¿|\®|\¬|\¼|\¡|\«|\»|\Á|\Â|\À|\©|\¢|\¥|\ã|\Ã|\¤|\ð|\Ð|\Ê|\Ë|\È|\Í|\Î|\Ï-¦|\Ì|\Ó|\ß|\Ô|\Ò|\õ|\Õ|\µ|\þ|\Þ|\Ú|\Û|\Ù|\ý|\Ý|\¯|\´|\­|\±|\¾|\¶|\§|\÷|\¸|\°|\¨|\·|\¹|\³|\²|\ÿ|\!|\#|\$|\%|\&|\’|\(|\)|\*|\+|\,|\-|\.|\/|\:|\;|\<|\=|\>|\?|\@|\[|\\|\]|\^|\_|\`|\{|\|\|\}|\~]{1,}

http://www.annuaire-info.com/outil-referencement/expression-reguliere/

mais dans mon code source elle me retourne toujours faux !! le souci vien de mon cod je suppose, mais impossible de voir exactement d'ou sa viendrais !


if (preg_match("#[\é|\â|\ä|\à|\å|\ç|\ê|\ë|\è|\ï|\î|\æ|\Æ|\ô|\ö|\ò|\û|\ù|\ÿ|\Ö|\Ü|\ø|\£|\ƒ|\í|\ó|\ú|\ñ|\Ñ|\ª|\º|\¿|\®|\¬|\¼|\¡|\«|\»|\Á|\Â|\À|\©|\¢|\¥|\ã|\Ã|\¤|\ð|\Ð|\Ê|\Ë|\È|\Í|\Î|\Ï-¦|\Ì|\Ó|\ß|\Ô|\Ò|\õ|\Õ|\µ|\þ|\Þ|\Ú|\Û|\Ù|\ý|\Ý|\¯|\´|\­|\±|\¾|\¶|\§|\÷|\¸|\°|\¨|\·|\¹|\³|\²|\ÿ|\!|\#|\$|\%|\&|\’|\(|\)|\*|\+|\,|\-|\.|\/|\:|\;|\<|\=|\>|\?|\@|\[|\\|\]|\^|\_|\`|\{|\|\|\}|\~]{1,}#",$variable'])) 
						{echo"vrais";}
else
{echo"faux";}	


avec pour $variable = azertyuiop!
0
-CCM- Messages postés 927 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 16 juin 2013 84
10 oct. 2008 à 15:39
Réponse :

ligne 3 ► les 5,6 et septiemes caractères ne sont pas backslashé et n'ont pas l'operateur "ou" ("|") d'ou l'erreur en php mais le testeur a été conçu de maniere a ne pas voir ces erreures :s .

Merci pour ton lien alain et merci a ..... heuuu , a moi .

:)
0