Login PHP
syncerastum
-
syncerastum -
syncerastum -
Bonjour,
j'ai un exercice a faire, et depuis des heurs je ne sais pas commencer, j'ai l'algorithme sur feuille mais j'arrive pas a le metre en PHP j'aurais besoin d'aide svp. si kk1 a déja eut affair a ceci, une copie du code sera sympa! :)
Merci
voici l'énoncer:( le texte d'origine etant en allemand je l'est traduit en fraçais, alors svp soyez indulgant :) )
S'il vous plaît, construisez un login dans PHP. Au login, un nouveau mot de passe doit pouvoir être inscrit. Celui-ci doit être examiné directement avec le javascript pour la sécurité. Chaque examen séparé doit recevoir un point. Dès 4 points, le mot de passe doit être estimé comme sûr et peuvent être changés.
1point pour mininum de 6 caractres.
1point pour l'application des chiffres.
1 point pour l'application du symbole spécial
1point pour l'application de l'emploi des majuscules et emploi de minuscules
L'échelle des points doit apparaître directement à côté du champ de mot de passe et montrer en couleurs le standard de sécurité actuel.
j'ai un exercice a faire, et depuis des heurs je ne sais pas commencer, j'ai l'algorithme sur feuille mais j'arrive pas a le metre en PHP j'aurais besoin d'aide svp. si kk1 a déja eut affair a ceci, une copie du code sera sympa! :)
Merci
voici l'énoncer:( le texte d'origine etant en allemand je l'est traduit en fraçais, alors svp soyez indulgant :) )
S'il vous plaît, construisez un login dans PHP. Au login, un nouveau mot de passe doit pouvoir être inscrit. Celui-ci doit être examiné directement avec le javascript pour la sécurité. Chaque examen séparé doit recevoir un point. Dès 4 points, le mot de passe doit être estimé comme sûr et peuvent être changés.
1point pour mininum de 6 caractres.
1point pour l'application des chiffres.
1 point pour l'application du symbole spécial
1point pour l'application de l'emploi des majuscules et emploi de minuscules
L'échelle des points doit apparaître directement à côté du champ de mot de passe et montrer en couleurs le standard de sécurité actuel.
Configuration: Windows XP Firefox 3.5.5
1 réponse
-
voici mon code que un pote ma passer, qui fait presque la meme chose, mais je veut le modifier pour quil soit exactement compatible avec l'ennoncer, merce de votre aide :)
// Fichier JScript
// ctl00_ContentPlaceHolder1_btnModifier" disabled="disabled"
var MinCaracteres = 5; // Nombre minimum de caratères du mot de passe
var CaracteresSecurite = 7; // Nombre de caractères correct pour un mot de passe
var SecuriteBouton = 2; // Niveau de sécurité pour dévérouiller le bouton Faible : 1, Moyen : 2, Fort : 3
// images des différents niveaux
var PicSecurite = new Array();
PicSecurite[0] = "images/NiveauZero.PNG";
PicSecurite[1] = "images/NiveauFaible.PNG";
PicSecurite[2] = "images/NiveauMoyen.PNG";
PicSecurite[3] = "images/NiveauFort.PNG";
var preLoadSecurite = new Array();
for (i = 0; i < 4; i++){
preLoadSecurite[i] = new Image();
preLoadSecurite[i].src = PicSecurite[i];
}
function NiveauSecurite()
{
// pwd : Mot de passe à vérifier
var pwd = document.getElementById("txtPdw").value ;
if (IsStrong(pwd))
{
document.getElementById("imgNiveauSecurite").src = preLoadSecurite[3].src;
document.getElementById("btnValider").disabled = false;
}
else if (IsMedium(pwd))
{
document.getElementById("imgNiveauSecurite").src = preLoadSecurite[2].src;
if (SecuriteBouton<=2)
{
document.getElementById("btnValider").disabled = false;
}else{
document.getElementById("btnValider").disabled = true;
}
}
else if (IsWeak(pwd))
{
document.getElementById("imgNiveauSecurite").src = preLoadSecurite[1].src;
if (SecuriteBouton<=1)
{
document.getElementById("btnValider").disabled = false;
}else{
document.getElementById("btnValider").disabled = true;
}
}
else
{
document.getElementById("imgNiveauSecurite").src = preLoadSecurite[0].src;
document.getElementById("btnValider").disabled = true;
}
}
function IsStrong(pwd)
{
// niveau Fort
if (pwd.length < CaracteresSecurite)
{
return false;
}else{
if (!SpansAtLeastNCharacterSets(pwd,3))
{
return false;
}else{
return true;
}
}
}
function IsMedium(pwd)
{
// niveau Moyen
if (pwd.length < CaracteresSecurite)
{
return false;
}else{
if (!SpansAtLeastNCharacterSets(pwd,2))
{
return false;
}else{
return true;
}
}
}
function IsWeak(pwd)
{
// niveau Faible
return (pwd.length >= (MinCaracteres));
}
function SpansAtLeastNCharacterSets( word, N)
{
// Calcul les différents types de caractères du mot de passe
// word : mot de passe, N : Nombre minimun de types de caractère différents pour retour à vrai
if (word == null)
return false;
var csets = new Array(false,false,false,false);
ncs = 0;
var listeNombre = "0123456789";
var listeCaractereSpe = "&é'(-è_çà)=*ù!:;,?./§-+<>$£µ%"+'"';
for (i = 0; i < word.length; i++)
{
c= word.charAt(i);
if (listeNombre.indexOf(c)>=0)
{
// caractère numérique
if (csets[0] == false)
{
csets[0] = true;
ncs++;
if (ncs >= N)
return true;
}
}
else if (listeCaractereSpe.indexOf(c)>=0)
{
// caractère spécial
if (csets[1] == false)
{
csets[1] = true;
ncs++;
if (ncs >= N)
return true;
}
}
else if (c.toUpperCase() ==c)
{
// caractère en Majuscule
if (!csets[2])
{
csets[2] = true;
ncs++;
if (ncs >= N)
return true;
}
continue;
}
else if (c.toLowerCase() ==c)
{
// caractère en Minuscule
if (!csets[3])
{
csets[3] = true;
ncs++;
if (ncs >= N)
return true;
}
}
}
return false;
}