[java] password
pierre
-
kilian Messages postés 8854 Statut Modérateur -
kilian Messages postés 8854 Statut Modérateur -
Salut à tous
Voila j'ai un peu cherché sur le site et je ne trouve pas de code java pour generer un mot de passe de 6 caractères par exemple.
Avec des lettres,des chiffres
Si quelqu'un a des indications pour coder ca ou encore un script :)
Merci d'avance
Voila j'ai un peu cherché sur le site et je ne trouve pas de code java pour generer un mot de passe de 6 caractères par exemple.
Avec des lettres,des chiffres
Si quelqu'un a des indications pour coder ca ou encore un script :)
Merci d'avance
A voir également:
- [java] password
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
4 réponses
Bonsoir,
Je pense que le générateur se base sur l'heure du système pour son initialisation seulement, (ie: new Random) comme la plupart du temps. Donc la pause après ne fait que le ralentir ;)
Par contre, je me serais moins compliqué la vie:
:-)
@plus
Je pense que le générateur se base sur l'heure du système pour son initialisation seulement, (ie: new Random) comme la plupart du temps. Donc la pause après ne fait que le ralentir ;)
Par contre, je me serais moins compliqué la vie:
import java.util.*;
public class test{
public static void main(String args[])
{
String alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_-@#&'(!?)$%?:;/.?,";
Random rand = new Random();
for (int i=0; i<6; i++)
{
System.out.print(alphabet.charAt(rand.nextInt(alphabet.length())));
}
System.out.print("\n");
}
}Qui me sort:PBG4:~ adrien$ javac test.java PBG4:~ adrien$ for i in 1 2 3 4 5 6 7 8 9 0; do java test; done; Lug$7u Rh%l2C mD$ir3 g9G(Vp P7cWeB RK$85u gKurYA 3cMc@! :b,HVq sJxO1e PBG4:~ adrien$
:-)
@plus
Salut,
Je viens de reflechir sur ce truc. Et le problème et qu'il ya une classe Random dans l'api Java qui peut générer des nombres aléatoires (ou plutôt pseudo-aléatoire)...
Le problème est que le nombre utilisé pour calculer des nombres pseudo-aléatoires dans java est construit à partir de l'heure système).
Ce qui fait que pour augmenter le caractère aléatoire de ce générateur, il faut attendre un peu entre la génération de chaque caractères. Donc c'est lent.
J'ai fait un script qui attend 1/2 seconde entre chaque caractère généré.
Parce que:
*d'une part,je génère un nombre entre 0 et 3 (exclu) pour choisir si le prochain caractère sera un chiffre, une minuscule ou une majuscule. Or il semble que plus l'éventail de nombre, dans lequel on en pioche un hasard, est petit, plus il y a de chance que ce nombre soit le même que celui qui a été tiré juste avant....
*d'autre part il faut aussi choisir un chiffre ou une lettre à générer, l'eventail de choix est un peu plus grand mais le problème reste le même.
Bref, j'ai bien un script mais c'est juste pour te donner une idée du truc, je serais toi je l'utiliserai pas si la sécurité est quelque chose de primordial pour ce que tu veux faire:
En plus c'est lent....
Je viens de reflechir sur ce truc. Et le problème et qu'il ya une classe Random dans l'api Java qui peut générer des nombres aléatoires (ou plutôt pseudo-aléatoire)...
Le problème est que le nombre utilisé pour calculer des nombres pseudo-aléatoires dans java est construit à partir de l'heure système).
Ce qui fait que pour augmenter le caractère aléatoire de ce générateur, il faut attendre un peu entre la génération de chaque caractères. Donc c'est lent.
J'ai fait un script qui attend 1/2 seconde entre chaque caractère généré.
Parce que:
*d'une part,je génère un nombre entre 0 et 3 (exclu) pour choisir si le prochain caractère sera un chiffre, une minuscule ou une majuscule. Or il semble que plus l'éventail de nombre, dans lequel on en pioche un hasard, est petit, plus il y a de chance que ce nombre soit le même que celui qui a été tiré juste avant....
*d'autre part il faut aussi choisir un chiffre ou une lettre à générer, l'eventail de choix est un peu plus grand mais le problème reste le même.
Bref, j'ai bien un script mais c'est juste pour te donner une idée du truc, je serais toi je l'utiliserai pas si la sécurité est quelque chose de primordial pour ce que tu veux faire:
import java.util.*;
public class test{
public static void main(String args[])
{
//On crée 10 mots de passe aléatoires
RandomString rs=new RandomString(6);
for(int i=0;i<10;i++)
{
System.out.println(rs.getNewRandom());
}
}
}
class RandomString
{
private int taille; //Taille de la chaine à générer
private final static int chiffre=0;
private final static int lettre_min=1;
private final static int lettre_maj=2;
public RandomString(int taille)
{
this.taille=taille;
}
//Génération d'un caractère aléatoire
private char nextChar()
{
int ret=0;
Random r=new Random();
//On determine si le caractère sera un chiffre ou une lettre
int nextType=r.nextInt(3);
switch (nextType)
{
case chiffre:
ret=r.nextInt(10);
ret+=48;
break;
case lettre_min:
ret=r.nextInt(26);
ret+=97;
break;
case lettre_maj:
ret=r.nextInt(26);
ret+=65;
break;
}
return (char)ret;
}
//Génère une chaine aléatoire
public String getNewRandom()
{
char [] tab_c = new char[taille];
for (int i=0; i<taille; i++)
{
tab_c[i]=this.nextChar();
//On dort 1/2 seconde
try{
Thread.sleep(500);
}
catch (Exception e){}
}
return new String(tab_c);
}
}
En plus c'est lent....
Salut kilian,
pour s'amuser regarde les messages 1,2,5 et 7 dans ce thread :-)
ce n'est pas du java :-) (shell et kanji :-))
pour s'amuser regarde les messages 1,2,5 et 7 dans ce thread :-)
ce n'est pas du java :-) (shell et kanji :-))