Rechercher : dans
Par :

[PHP] Mot de passe sécurisé

Dernière réponse le 10 oct 2008 à 15:39:33 -CCM-, le 9 oct 2008 à 17:06:03 
 Signaler ce message aux modérateurs

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 ?

Configuration: Windows 95
Netscap Navigator 0.2b

Meilleures réponses pour « [PHP] Mot de passe sécurisé » dans :
Comment changer mon mot de passe sous WLM/MSN VoirPour changer son mot de passe Windows Live Messenger, il suffit d'utiliser l'interface prévue à cet effet : http://memberservicesnet.passport.net/memberservice.srf?lc=1036 Si vous avez perdu votre mot de passe, merci de vous référer à...
[MSN] Mot de passe perdu VoirVous avez perdu ou oublié votre mot de passe d'accès à un service MSN ou Hotmail ? Vous êtes dans l'un de ces trois cas : 1er cas : Vous avez oublié votre mot de passe mais connaissez la réponse à la question secrète et/ou vous avez une...

1

Alain_42, le 9 oct 2008 à 17:25:39

Le plus simple les REGEX vas voir le siteduzero.com

Répondre à Alain_42

2

-CCM-, le 9 oct 2008 à 17:30:41

Salut alain, merci je vais y jetter oeil, sa ne me dit rien ...

Répondre à -CCM-

3

-CCM-, le 10 oct 2008 à 09:55: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

Répondre à -CCM-

4

-CCM-, le 10 oct 2008 à 10:31:00

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 ...

Répondre à -CCM-

5

-CCM-, le 10 oct 2008 à 11:38:58

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 .. :(

Répondre à -CCM-

6

-CCM-, le 10 oct 2008 à 15:14:45

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!

Répondre à -CCM-

7

 -CCM-, le 10 oct 2008 à 15:39:33

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 .

:)

Répondre à -CCM-
Collection CommentÇaMarche.net