[java] password
Fermé
pierre
-
2 déc. 2006 à 12:14
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 4 déc. 2006 à 22:30
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 4 déc. 2006 à 22:30
A voir également:
- [java] password
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Winrar password unlocker - Télécharger - Récupération de données
4 réponses
asevere
Messages postés
13084
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
23 novembre 2024
426
2 déc. 2006 à 18:44
2 déc. 2006 à 18:44
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
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
2 déc. 2006 à 14:30
2 déc. 2006 à 14:30
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....
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
2 déc. 2006 à 23:49
2 déc. 2006 à 23:49
Ah ben vi :-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
3 déc. 2006 à 00:39
3 déc. 2006 à 00:39
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 :-))
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
4 déc. 2006 à 22:30
4 déc. 2006 à 22:30
Rah bon sang, j'arrive pas à faire plus court en python :-(
Mais j'ai au moins réussi à le faire tenir en une ligne :-)
Mais j'ai au moins réussi à le faire tenir en une ligne :-)
for i in range(0,9): __import__("sys").stdout.write(chr(__import__("random").choice(range(48, 58) + range(65, 91) + range(97, 123))))