Robustesse mot de passe - Help

Fermé
Tom1494 Messages postés 2 Date d'inscription vendredi 29 septembre 2017 Statut Membre Dernière intervention 6 octobre 2017 - 29 sept. 2017 à 10:32
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 6 oct. 2017 à 18:41
Bonjour,

Je cherche à écrire un programme permettant de calculer la robustesse d'un mot de passe :
-Composé de min 8 caractères et d'au moins 20 caractères
-Peut contenir des lettres alpha a-z / A/Z, des chiffres 0-9 et sept caractères spéciaux &#(_)$!
-Ne doit pas commencer par un chiffre
-Doit contenir que les caractères ci dessus.


Ensuite analyser sa robustesse :
-Excellent : le mot de passe contient au moins une lettre maj, une lettre minuscule, un chiffre et un caract spécial
-Bon : le mot de passe contient des lettres avec des chiffres ou bien des lettres avec des caractères spéciaux
-Faible : Tous les autres cas

Programme devra être écrit :
"Donnez un mot de passe d'au moins 8 caractères :
YJK$)#1i
validité : ok
robustesse : Excellente


je n'arrive pas à considérer le mot de passe comme une chaîne de caractères (tableau de caractères) et le parcourir avec un index pour examiner la nature de chacun des caractères.
J'ai ça pour le moment :

function estMajuscule(c)
{
if (c>='A' && c<='Z') return true;
else return false;
}

Un grand merci pour votre aide

3 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
Modifié le 29 sept. 2017 à 17:23
Bonsoir
Composé de min 8 caractères et d'au moins 20 caractères

t'es sûr? c'est pas plutôt 20 maximum?

Je ne code pas en JavaScript, mais quelque soit le langage tu peux faire ça avec des Regex.

Voir un exemple ici
http://regexstorm.net/tester?p=%28%3f%3d.*%5ba-z%5d%29%28%3f%3d.*%5bA-Z%5d%29%28%3f%3d.*%5cd%29%28%3f%3d.*%5b_%26%5c%23%5c%28%5c%29%5c%24!%5d%29%5e%5ba-z%5d%7c%5bA-Z%5d%5b%5cw%26%5c%23%5c%28%5c%29%5c%24!%5d%7b7%2c19%7d%24&i=Addfghf1_

Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
Tom1494 Messages postés 2 Date d'inscription vendredi 29 septembre 2017 Statut Membre Dernière intervention 6 octobre 2017
6 oct. 2017 à 17:52
J'ai avancer de mon côté mais je rencontre des pbl, je n'arrive pas à déterminer mes caractères spéciaux : interdits et autorisés et surtout je n'arrive pas à faire afficher ma fonction sur la robustesse ! Des avis? des conseils ?
Voici pour le moment mon code :

<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<TITLE>Robustesse du mot de passe</TITLE>
</HEAD>

<BODY>
<SCRIPT LANGUAGE="Javascript">

var mdp = prompt("Entrer votre mot de passe");
var isNum=0;
var isMaj=0;
var isSpe=0;
var isMin=0;
var isAccent=0;
var i="Robustesse du mot de passe";


var mdp1=mdp.substr(0,1);

document.write("Donner un mot de passe d'au moins 8 caractères")

while (mdp.length<8) {
mdp=prompt("votre mot de passe doit contenir au moins 8 caractères");
}

while (mdp.length>20) {
mdp=prompt("votre mot de passe ne doit pas contenir plus de 20 caractères");
}

while (mdp1>='0' && mdp1<='9') {
mdp=prompt("votre mot de passe ne peut pas commencer par un chiffre");

}

//function caracteresinterdits(mdp)
//{
// if (mdp == 'Â' || mdp == 'Ã' || mdp == 'Ä' || mdp == 'À' || mdp == 'Á' || mdp == 'Å' || mdp == 'Æ' || mdp == 'Ç' || mdp == 'È' || mdp == 'É' || mdp == 'Ê' || mdp == 'Ë' || mdp == 'Ì' || mdp == 'Í' || mdp == 'Î' || mdp == 'Ï' || mdp == 'Ð' || mdp == 'Ñ' || mdp == 'Ò' || mdp == 'Ó' || mdp == 'Ô' || mdp == 'Õ' || mdp == 'Ö' || mdp == 'Ø' || mdp == 'Ù' || mdp == 'Ú' || mdp == 'Û' || mdp == 'Ü' || mdp == 'Ý' || mdp == 'Þ' || mdp == 'ß' || mdp == 'à' || mdp == 'á' || mdp == 'â' || mdp == 'ã' || mdp == 'ä' || mdp == 'å' || mdp == 'æ' || mdp == 'ç' || mdp == 'è' || mdp == 'é' || mdp == 'ê' || mdp == 'ë' || mdp == 'ì' || mdp == 'í' || mdp == 'î' || mdp == 'ï' || mdp == 'ð' || mdp == 'ñ' || mdp == 'ò' || mdp == 'ó' || mdp == 'ô' || mdp == 'õ' || mdp == 'ö' || mdp == 'ø' || mdp == 'ù' || mdp == 'ú' || mdp == 'û' || mdp == 'ü' || mdp == 'ý' || mdp == 'þ' || mdp == 'ÿ' || mdp == '%' || mdp == '\\' || mdp == '*' || mdp == '+' || mdp == ',' || mdp == '-' || mdp == '.' || mdp == '/' || mdp == ':' || mdp == ';' || mdp == '<' || mdp == '=' || mdp == '>' || mdp == '?' || mdp == '@' || mdp == '[' || mdp == '\\' || mdp == '\'' || mdp == ']' || mdp == '^' || mdp == '{' || mdp == '|' || mdp == '}' || mdp == '~' || mdp == '@' || mdp == '"' || mdp == '')

// return nbcaraspe=nbcaraspe+1 ;
// else
// return nbcaraspe=nbcaraspe+0;
//}

while (mdp == 'Â' || mdp == 'Ã' || mdp == 'Ä' || mdp == 'À' || mdp == 'Á' || mdp == 'Å' || mdp == 'Æ' || mdp == 'Ç' || mdp == 'È' || mdp == 'É' || mdp == 'Ê' || mdp == 'Ë' || mdp == 'Ì' || mdp == 'Í' || mdp == 'Î' || mdp == 'Ï' || mdp == 'Ð' || mdp == 'Ñ' || mdp == 'Ò' || mdp == 'Ó' || mdp == 'Ô' || mdp == 'Õ' || mdp == 'Ö' || mdp == 'Ø' || mdp == 'Ù' || mdp == 'Ú' || mdp == 'Û' || mdp == 'Ü' || mdp == 'Ý' || mdp == 'Þ' || mdp == 'ß' || mdp == 'à' || mdp == 'á' || mdp == 'â' || mdp == 'ã' || mdp == 'ä' || mdp == 'å' || mdp == 'æ' || mdp == 'ç' || mdp == 'è' || mdp == 'é' || mdp == 'ê' || mdp == 'ë' || mdp == 'ì' || mdp == 'í' || mdp == 'î' || mdp == 'ï' || mdp == 'ð' || mdp == 'ñ' || mdp == 'ò' || mdp == 'ó' || mdp == 'ô' || mdp == 'õ' || mdp == 'ö' || mdp == 'ø' || mdp == 'ù' || mdp == 'ú' || mdp == 'û' || mdp == 'ü' || mdp == 'ý' || mdp == 'þ' || mdp == 'ÿ' || mdp == '%' || mdp == '\\' || mdp == '*' || mdp == '+' || mdp == ',' || mdp == '-' || mdp == '.' || mdp == '/' || mdp == ':' || mdp == ';' || mdp == '<' || mdp == '=' || mdp == '>' || mdp == '?' || mdp == '@' || mdp == '[' || mdp == '\\' || mdp == '\'' || mdp == ']' || mdp == '^' || mdp == '{' || mdp == '|' || mdp == '}' || mdp == '~' || mdp == '@' || mdp == '"' || mdp == '')
{ mdp=prompt("Votre mot de passe contient un caractère spécial non-autorisé, autorisé : &#(_)$!");
}

if ((mdp.length>8) || (mdp.length<20) || (mdp1<='0' && mdp1>='9')) document.write("Validité : Ok");

//DEMANDER AU PROF POUR MdP1 0 9




// if (MdP.length<8 || MdP.length>20 || MdP1>='0' && MdP1<='9') document.write("votre mot de passe est valide")

function getMaj(mdp, isMaj)
{
var maj = /^[A-Z]/;
if (c>='A' && c<='Z')
{
return isMaj=isMaj+1;
}
else return isMaj=isMaj+0;
}

function getNumber(mdp, isNum)
{
var number = /^[0-9]/;

if (number.test(mdp))
{
return isNum=isNum+1;
}
else return isNum=isNum+0;
}

function getAccents(mdp, isAccent)
{
var accent = "ÂÃÄÀÁÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ"
var check = 0;
for (var i = 0; i < accent.length; i++)
{
if (mdp == accent[i])
{
check = 1;
}
}
if (check == 1)
{
return isAccent=isAccent+1;
}
else return isAccent=isAccent+0;

}

function getSpecialChar(mdp, isSpe)
{
var special = '&#(_)$!';
var check = 0;
for (var i = 0; i < special.length; i++)
{
if (mdp == special[i])
{
check = 1;
}
}
if (check == 1)
{
return isSpe=isSpe+1;
}
else return isSpe=isSpe+0;
}

function finalTest(isNum, isAccent, isMaj, isSpe, mdp)
{
var valid = 0;
var retours = [isSpe, isNum, isAccent, isMaj];

console.log(mdp);
console.log(isNum + " chiffres");
console.log(isAccent + " accents");
console.log(isMaj + " majuscules");
console.log(isSpe + " special");
for (var i = 0; i < retours.length; i++)
{
if (retours[i] > 0)
{
valid++;
}
}
if (valid == 2)
{
document.write("securité moyenne");
}
else if (valid == 4)
{
document.write("sécurité forte");
}
else if(valid == 0)
{
document.write("sécurité faible");
}
else
{
document.write("autre sécurité");
}
}




</SCRIPT>

</BODY>
</HTML>
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
6 oct. 2017 à 18:41
Des conseils?
Je t’ai proposé une regex qui fait ce que tu demandes, t’as pris la peine de regarder au moins?
0