Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Génération d'un mot de passe vérifiant certaines contraintes

13 réponses
Avatar
Aircamus
Bonjour =E0 tous,

Je cherche un morceau de coe permettant de g=E9n=E9rer un mot de passe
alphanum=E9rique selon les r=E8gles suivantes :

=B7 Doit contenir ou moins une lettre minuscule

=B7 Doit contenir ou moins une lettre majuscule

=B7 Doit contenir ou moins un chiffre

=B7 Doit contenir ou moins un caract=E8re sp=E9cial (i.e. un
caract=E8re faisant partie de la liste : &~"#?{([-|`_\^@)]=3D}+=B0$=A3*=B5%=
=A8 !
=A7:/ ;., ?<>=B2 )

Avez-vous une id=E9e ?

Merci d'avance :-)

10 réponses

1 2
Avatar
captainpaf
Bonjour à tous,

Je cherche un morceau de coe permettant de générer un mot de passe
alphanumérique selon les règles suivantes :

· Doit contenir ou moins une lettre minuscule

· Doit contenir ou moins une lettre majuscule

· Doit contenir ou moins un chiffre

· Doit contenir ou moins un caractère spécial (i.e. un
caractère faisant partie de la liste : &~"#?{([-|`_^@)]=}+°$£*µ%¨ !
§:/ ;., ?<>² )

Avez-vous une idée ?

Merci d'avance :-)


Bonjour,

ça ne devrait pas être très compliqué.
Tu dois définir tes lettres, par exemple :
<code>
String lettres = "abcdefghijklmnopqrstuvwxyz"
String specialCar = "&~"..."
</code>
ou alors
<code>
private char[] lettres = {'a','b','c'/*...*/};
</code>
puis après tu définis 3 couples de chiffres Min et Max pour le nombre
de caractères souhaités minimum et maximum dans chaque catégorie
(minuscule,majuscule,spéciaux) pour ton mot de passe.

par exemple :
int minMAJ = 1;
int maxMAJ = 3;
int minMIN = 3;
int maxMIN = 7;
int minSPE = 1;
int maxSPE = 2;

après, il te suffit de générer 3 nombres aléatoires compris entre tes
valeurs minimum et maximum. Par exemple i,j,k.
Regarde du côté de la class java.util.Math pour les nombres aléatoires.
Enfin pour chaque catégorie, tu ajoutes i,j ou k fois la valeur trouvée
au hasard dans la catégorie.

voilà

Avatar
Real Gagnon
Je cherche un morceau de coe permettant de générer un mot de passe
alphanumérique selon les règles suivantes :


Sur http://johannburkard.de/grabbag/ , regarde le source`de
PasswordTools.java

Bye.
--
Real Gagnon from Quebec, Canada
* Java, Javascript, VBScript and PowerBuilder code snippets
* http://www.rgagnon.com/howto.html
* http://www.rgagnon.com/bigindex.html

Avatar
Aircamus
On 13 juil, 13:36, "captainpaf" wrote:
Bonjour à tous,

Je cherche un morceau de coe permettant de générer un mot de passe
alphanumérique selon les règles suivantes :

· Doit contenir ou moins une lettre minuscule

· Doit contenir ou moins une lettre majuscule

· Doit contenir ou moins un chiffre

· Doit contenir ou moins un caractère spécial (i.e. un
caractère faisant partie de la liste : &~"#?{([-|`_^@)]=}+°$£* µ%¨ !
§:/ ;., ?<>² )

Avez-vous une idée ?

Merci d'avance :-)


Bonjour,

ça ne devrait pas être très compliqué.
Tu dois définir tes lettres, par exemple :
<code>
String lettres = "abcdefghijklmnopqrstuvwxyz"
String specialCar = "&~"..."
</code>
ou alors
<code>
private char[] lettres = {'a','b','c'/*...*/};
</code>
puis après tu définis 3 couples de chiffres Min et Max pour le nombre
de caractères souhaités minimum et maximum dans chaque catégorie
(minuscule,majuscule,spéciaux) pour ton mot de passe.

par exemple :
int minMAJ = 1;
int maxMAJ = 3;
int minMIN = 3;
int maxMIN = 7;
int minSPE = 1;
int maxSPE = 2;

après, il te suffit de générer 3 nombres aléatoires compris entre tes
valeurs minimum et maximum. Par exemple i,j,k.
Regarde du côté de la class java.util.Math pour les nombres aléatoi res.
Enfin pour chaque catégorie, tu ajoutes i,j ou k fois la valeur trouv ée
au hasard dans la catégorie.

voilà


Merci pour cette réponse.
Cependant, je ne sais pas comment faire ce que tu dis. Est-ce que
quelqu'un aurait déjà un exemple de code qui fait cela ?

Je suis un incapable en Java...

Merci d'avance.


Avatar
cfranco
Aircamus wrote:

Je cherche un morceau de coe permettant de générer un mot de passe
alphanumérique selon les règles suivantes :

· Doit contenir ou moins une lettre minuscule

· Doit contenir ou moins une lettre majuscule

· Doit contenir ou moins un chiffre

· Doit contenir ou moins un caractère spécial (i.e. un
caractère faisant partie de la liste : &~"#?{([-|`_^@)]=}+°$£*µ%¨ !
§:/ ;., ?<>" )

Avez-vous une idée ?


En suivant les préceptes de XP, la méthode la plus simple pour résoudre
le problème posé est :

public static String generatePassword() {
return "aA1&";
}

;-)


En d'autres termes, il manque encore d'autres critères pour bien définir
ce que tu souhaites faire...

--
Christophe Franco

Avatar
Aircamus
On 14 juil, 11:42, (Christophe Franco) wrote:
Aircamus wrote:
Je cherche un morceau de coe permettant de générer un mot de passe
alphanumérique selon les règles suivantes :

· Doit contenir ou moins une lettre minuscule

· Doit contenir ou moins une lettre majuscule

· Doit contenir ou moins un chiffre

· Doit contenir ou moins un caractère spécial (i.e. un
caractère faisant partie de la liste : &~"#?{([-|`_^@)]=}+°$£* µ%¨ !
§:/ ;., ?<>" )

Avez-vous une idée ?


En suivant les préceptes de XP, la méthode la plus simple pour réso udre
le problème posé est :

public static String generatePassword() {
return "aA1&";

}

;-)

En d'autres termes, il manque encore d'autres critères pour bien défi nir
ce que tu souhaites faire...

--
Christophe Franco


Il faut que generatePassword prenne au hasard :
- au moins une lettre de [a-z]
- au moins une lettre de [A-Z]
- au moins un chiffre de [0-9]
- au moins un des caractères spéciaux.


Une autre contrainte su le mot de passe généré et qu'il doit être
d'une longueur comprise entre x et X. x et X seraient passés en
paramètre à generatePassword.

Par exemple on peut avoir besoin de créer un mot de passe d'une
longueur de 8 (x=8) à 10 (x) caractères avec :
- au moins une lettre de [a-z]
- au moins une lettre de [A-Z]
- au moins un chiffre de [0-9]
- au moins un des caractères spéciaux.

On obtiendrait alors par exemple au hasard 1#t5Ge{p ou aZe#5'])9 ou


Etant un débutant en Java (j'ai le niveau pour faire afficher Hello
World) je ne vois pas comment faire cela.

Merci d'avance


Avatar
Aircamus
On 14 juil, 11:42, (Christophe Franco) wrote:
Aircamus wrote:
Je cherche un morceau de coe permettant de générer un mot de passe
alphanumérique selon les règles suivantes :

· Doit contenir ou moins une lettre minuscule

· Doit contenir ou moins une lettre majuscule

· Doit contenir ou moins un chiffre

· Doit contenir ou moins un caractère spécial (i.e. un
caractère faisant partie de la liste : &~"#?{([-|`_^@)]=}+°$£* µ%¨ !
§:/ ;., ?<>" )

Avez-vous une idée ?


En suivant les préceptes de XP, la méthode la plus simple pour réso udre
le problème posé est :

public static String generatePassword() {
return "aA1&";

}

;-)

En d'autres termes, il manque encore d'autres critères pour bien défi nir
ce que tu souhaites faire...

--
Christophe Franco


Il faudrait que generatePassword génére un passwd au hasard.

avec :

au moins une lettre de [a-z]
au moins une lettre de [A-Z]
au moins un chiffre de [0-9]
au moins un caractère spécial

Il faut également que le mot de passe généré soit d'une longueur
comprise entre x et X (x et X sont de paramètre passé à
generePassword.

generePassword(8,10) générerait alors au hasard par exemple :

a1[|eRs6
ou
1Zr5{yTdF
ou
|


Avatar
cfranco
Aircamus wrote:

Il faut que generatePassword prenne au hasard :
- au moins une lettre de [a-z]
- au moins une lettre de [A-Z]
- au moins un chiffre de [0-9]
- au moins un des caractères spéciaux.


Une autre contrainte su le mot de passe généré et qu'il doit être
d'une longueur comprise entre x et X. x et X seraient passés en
paramètre à generatePassword.

Par exemple on peut avoir besoin de créer un mot de passe d'une
longueur de 8 (x=8) à 10 (x) caractères avec :
- au moins une lettre de [a-z]
- au moins une lettre de [A-Z]
- au moins un chiffre de [0-9]
- au moins un des caractères spéciaux.

On obtiendrait alors par exemple au hasard 1#t5Ge{p ou aZe#5'])9 ou


Etant un débutant en Java (j'ai le niveau pour faire afficher Hello
World) je ne vois pas comment faire cela.


Je crois qu'il manque encore (et surtout) un critère sur l'aspect
"hasard" de l'algorithme, et en particulier sur sa non-prédictabilité...
Je sais que ça peut paraître évident, mais d'un point de vue
algorithmique ça ne l'est pas forcément.

--
Christophe Franco

Avatar
TestMan
On 14 juil, 11:42, (Christophe Franco) wrote:
Aircamus wrote:
Je cherche un morceau de coe permettant de générer un mot de passe
alphanumérique selon les règles suivantes :
· Doit contenir ou moins une lettre minuscule
· Doit contenir ou moins une lettre majuscule
· Doit contenir ou moins un chiffre
· Doit contenir ou moins un caractère spécial (i.e. un
caractère faisant partie de la liste : &~"#?{([-|`_^@)]=}+°$£*µ%¨ !
§:/ ;., ?<>" )
Avez-vous une idée ?
En suivant les préceptes de XP, la méthode la plus simple pour résoudre

le problème posé est :

public static String generatePassword() {
return "aA1&";

}

;-)

En d'autres termes, il manque encore d'autres critères pour bien définir
ce que tu souhaites faire...

--
Christophe Franco


Il faudrait que generatePassword génére un passwd au hasard.

avec :

au moins une lettre de [a-z]
au moins une lettre de [A-Z]
au moins un chiffre de [0-9]
au moins un caractère spécial

Il faut également que le mot de passe généré soit d'une longueur
comprise entre x et X (x et X sont de paramètre passé à
generePassword.

generePassword(8,10) générerait alors au hasard par exemple :

a1[|eRs6
ou
1Zr5{yTdF
ou
|


Bonjour,

Jettez un oeil à :
http://ostermiller.org/utils/RandPass.html

Par exemple en implémentant votre propre classe PasswordVerifier qui
testera vos contraintes précises via une expression réguliere
correspondante, et l'assignerez au RandPass pour qu'il serve de filtre ;-)

A+

TM



Avatar
Arnaud W.
Avez-vous une idée ?




Voici un exemple fait en 5 minutes (sans utiliser de librairies
externes) :
http://cjoint.com/?hslkuySWJZ (disponible pendant 21 jours)
(ce n'est peut être pas optimisé, mais ca marche)

Pour simplement tester la robustesse d'un mot de passe, j'avais fait
ca il y a quelques années :
http://awr.free.fr/java/crypto.html#PasswordChecker

Cordialement,
Arnaud W.
http://awr.free.fr



Avatar
Aircamus
On 16 juil, 16:02, (Christophe Franco) wrote:
Aircamus wrote:
Il faut que generatePassword prenne au hasard :
- au moins une lettre de [a-z]
- au moins une lettre de [A-Z]
- au moins un chiffre de [0-9]
- au moins un des caractères spéciaux.

Une autre contrainte su le mot de passe généré et qu'il doit êt re
d'une longueur comprise entre x et X. x et X seraient passés en
paramètre à generatePassword.

Par exemple on peut avoir besoin de créer un mot de passe d'une
longueur de 8 (x=8) à 10 (x) caractères avec :
- au moins une lettre de [a-z]
- au moins une lettre de [A-Z]
- au moins un chiffre de [0-9]
- au moins un des caractères spéciaux.

On obtiendrait alors par exemple au hasard 1#t5Ge{p ou aZe#5'])9 ou


Etant un débutant en Java (j'ai le niveau pour faire afficher Hello
World) je ne vois pas comment faire cela.


Je crois qu'il manque encore (et surtout) un critère sur l'aspect
"hasard" de l'algorithme, et en particulier sur sa non-prédictabilité ...
Je sais que ça peut paraître évident, mais d'un point de vue
algorithmique ça ne l'est pas forcément.

--
Christophe Franco


J'ai envie de répondre peu importe :-)
Je ne vois pas ce que veut dire la non-prédictabilité. Si le passwd
est généré au hasard on ne pas prédire ce qu'il sera ?


1 2