Hilfe PW Generator

c_sidi90

c_sidi90

Top Contributor
Hallo ich hoffe ihr könnt mir helfen, ich versuche ein PW generator zu erstellen wo der Anwender die gewünschte Länge und die anzahl an Buchstaben festlegen kann. Das ganze soll nich wirklich OOP sein also nicht aufregen :p Das mit der Länge passt aber ich hab keine Ahnung wie ich bei der Ausgabe noch die zufallsbuchstaben reinbekomme in die Ausgabe des Zufallsarrays. Hier mein Code !

Java:
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.Random;

import javax.xml.bind.ParseConversionEvent;

public class Generator {
	public static void main (String[]args)throws IOException{
		
		
		
		//Deklaration der Variablen zum speichern der Benutzereingabe
		String laengeString="";
		String mindestzahlString="";
		String mindestbuchstabenString="";
		
		//Deklaration und initialisierung der Variablen zum erstellen des Zufallscodes
		int laenge=0;
		long mindBuchstaben=0;
		

		
		//Erstellung der Benutzereingabe..
		InputStreamReader Wandler = new InputStreamReader(System.in);
		BufferedReader Eingabe = new BufferedReader(Wandler);
		
		
		System.out.println ("Passwort-Generator");
		
		//Benutzerabfrage
		System.out.println ("Bitte geben Sie die gewünschte Länge ein...");
		laengeString = Eingabe.readLine();
		
		
		System.out.println ("Bitte geben Sie die gewünschte Mindestanzahl an Buchstaben ein...");
		mindestbuchstabenString = Eingabe.readLine();
		
		//Umwandlung der Benutzereingaben für die zufällige Generierung.
		laenge = Integer.parseInt(laengeString);
		mindBuchstaben = Long.parseLong (mindestbuchstabenString);
		
		
		//Generiert das Passwort
		System.out.println ("Ihr Passwort wird generiert...");
		
		//Erzeugt ein Array mit dem Index von "Laenge" (Benutzereingabe maximale Länge
		int[]passwort = new int[laenge];
		
		
		//Füllt das Array passwort mit Zufallszahlen bis (gewünschte Länge)
		for (int i=0; i<laenge; i++) {
			passwort[i] = Long.toString(mindBuchstaben)+ (int)(Math.random()*laenge);
			
			//Ausgabe der Zufallszahlen
			System.out.print (passwort[i]);
		
		}
		
	}
}

P.S Ich habe die Buchstaben Variable als Long deklariert weil ich es mit der Long.toString Methode machen wollte, aber es funktioniert nicht, ich kenne die fORMEL für die Ausgabe im System.out nicht...
 
M

Marcinek

Gast
Long.toString() gibt die Stringrepresenation einer Long zurück.

Also die Zahl als String. Das wandelt nicht ein 30 in ein A oder so.

Dafür brauchst du ein Ascii wandler

Das Erstellen deiner Random Zahl siehst höchstens geraten aus als überlagt, was das Prog an der Stelle machen soll.

Ich würde vorschlagen du nimmst ein Array mit allen buchstaben, die im PW Vorkommen sollen.

Wenn dann die min. Anzahl von Buchstanebn im PW X ist und die gesamtlänge Y dann würde ich zunächst

Per Zufall Y-X mal eine Zahl einfliesen lassen und den Rest per Zufall aus dem Array der möglichen buchstaben auslesen. Die zahlen sollen ja Verteilt über das PW sein, dann müsste man bei jedem Schleifendurchlauf von Y eine ja nein entscheidung treffen, ob eine Zahl kommt oder ein Buchstabe.


Gruß,

Martin
 
S

SlaterB

Gast
was soll denn überhaupt passieren?
Erklärungen lieferst du fast keine, der Ausgabe im Programmcode soll mindBuchstaben die Anzahl an Buchstaben im Passwort sein, Rest Zahlen?

mindBuchstaben sorgt also dafür, dass manche passwort Buchstaben sind, andere Zahlen,
aber mindBuchstaben wird doch nicht ich jedes einzelne passwort eingerechnet? weder als Long noch als String, noch als sonstwas,

das i der Schleife kannst du verwenden:
Java:
if (i < mindBuchstaben ) {
  passwort[i] = zufälliger Buchstabe
} else {
  passwort[i] = zufällige Zahl
}
hilft dir das weiter?

-----

wenn du jetzt fragst: 'wie erstellte ich einen zufälligen Buchstaben?'
dann antworte ich darauf:
wäre gut dass in einem einfachen Programm "einen zufälligen Buchstaben erstellen" zu testen,
nicht mitten in einem komplizierten anderen Programm um Passwörter, Schleife, Benutzereingaben usw'

vergiss in diesem Fall dein gesamtes Programm und konzentriere dich auf:
Java:
public class Test {

   public static void main(String[] args) {
      char c = zufälliger Buchstabe;
      System.out.println(c);
   }
}
 
c_sidi90

c_sidi90

Top Contributor
vielen Dank für eure Tipps! Dann hat google mich mit der long.toString Methode wohl auf den falschenweg geführt. Das Array mit den Zufallszahlen füllen war für mich halt die einfachste Methode mit der math.random methode welche ich kannte. Die erzeugung eines Zufallsbuchstabens ist mir jedoch leider nicht bekannt, wäre für weitere Hilfe dankbar
 
G

Gast2

Gast
Ein Buchstabe (char) kann auch als Zahl (int) ausgedrückt werden. Siehe dir dazu mal eine ASCII Tabelle an:
ASCII-Tabelle

Java:
int i = 71;
char c = (char) i; // 'G'

Jetzt musst du nur noch zufällig Zahlen im Wertebereich von 33 bis 126 (um im druckbaren Bereich zu bleiben) erzeugen
 
c_sidi90

c_sidi90

Top Contributor
Danke habs schon gefunden, also kann ich das Array mit den Zufalls zahlen und ein zusätzliches Array für Zufallsbuchstaben erstellen und beide Arrays ausgeben? Oder würde dies zu kompliziert und falsch sein?

Sorry aber bin noch absoluter Neuling..
 
G

Gast2

Gast
Mach doch einfach alles in einem Schritt.

Java:
        char[] passwort = new char[laenge];
        
        
        //Füllt das Array passwort mit Zufallszahlen bis (gewünschte Länge)
        for (int i=0; i<laenge; i++) {
             int r = <erzeugeZufallszahl>;
             passwort[i] = (char) r;
        }
        System.out.println(String.valueOf(passwort));
 
Zuletzt bearbeitet von einem Moderator:
c_sidi90

c_sidi90

Top Contributor
Es soll bei der Ausgabe aber ja Zufallszahlen gemischt mit Buchstaben ausgeben werden, nicht NUR Buchstaben
 
c_sidi90

c_sidi90

Top Contributor
Ich habs irgendwie hinbekommen, mit Sicherheit eine sehr unschöne Lösung aber der Zweck ist erfüllt, ich bin ja noch am pauken ;)

Java:
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.Random;

import javax.xml.bind.ParseConversionEvent;

public class Generator {
	public static void main (String[]args)throws IOException{
		
		
		
		//Deklaration der Variablen zum speichern der Benutzereingabe
		String laengeString="";
		String mindestzahlString="";
		String mindestbuchstabenString="";
		
		//Deklaration und initialisierung der Variablen zum erstellen des Zufallscodes
		int laenge=0;
		int mindBuchstaben=0;
		
	

		
		//Erstellung der Benutzereingabe..
		InputStreamReader Wandler = new InputStreamReader(System.in);
		BufferedReader Eingabe = new BufferedReader(Wandler);
		
		
		System.out.println ("Passwort-Generator");
		
		//Benutzerabfrage
		System.out.println ("Bitte geben Sie die gewünschte Länge ein...");
		laengeString = Eingabe.readLine();
		
		
		System.out.println ("Bitte geben Sie die gewünschte Mindestanzahl an Buchstaben ein...");
		mindestbuchstabenString = Eingabe.readLine();
		
		//Umwandlung der Benutzereingaben für die zufällige Generierung.
		laenge = Integer.parseInt(laengeString);
		mindBuchstaben = Integer.parseInt (mindestbuchstabenString);
		
		//Zieht die Anzahl an gewünschten Buchstaben ab damit der Rest Zahlen sind
		laenge = laenge-mindBuchstaben;
		
		//Generiert das Passwort
		System.out.println ("Ihr Passwort wird generiert...");
		
		//Erzeugt ein Array mit dem Index von "Laenge" (Benutzereingabe maximale Länge
		int[]passwort = new int[laenge];
		//Erzeugt ein Array mit dem Index von"mindestBuchstaben"(Benutzereingabe)
	
		
		//Füllt das Array passwort mit Zufallszahlen bis (gewünschte Länge)
		for (int i=0; i<laenge; i++) {
			passwort[i] =  (int)(Math.random()*laenge);
			
			//Deklariert die Variable c und weist einen Zufallsbuchstaben zu
			char c = 'a';
			c = (char) (Math.random()*26 + 'a');
	
			//Ausgabe der Zufallszahlen
			System.out.print (c);
			//Ausgabe der Zufallsbuchstaben
			System.out.print (passwort[i]);
			
			
			
		}
		
	}
 
G

Gast2

Gast
Es soll bei der Ausgabe aber ja Zufallszahlen gemischt mit Buchstaben ausgeben werden, nicht NUR Buchstaben

Du hast dir aber schon die ASCII Tabelle angesehn?

Java:
int i = 52;
char c = (char) i

Was kommt bei raus?

Zum Einlesen der Benutzereingabe eignet sich auch sehr gut die Klasse Scanner, da kannst du dann auch gleich eine Zahl einlesen lassen und musst nicht erst rumkonvertieren.
 
c_sidi90

c_sidi90

Top Contributor
doch noch ein wenig falsch, mh vlt kann mir jemand der Zeit hat ja mal die Aufgabe in einem neuen Code vorstellen und die Schritte kommentieren, wäre sehr dankbar
 
G

Gast2

Gast
Kannst ja mal gucken was du hieran nicht verstehst und wo z.B. ein Problem mit diesem code besteht.
Java:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

public class PasswortGenerator {

	public static void main(String[] args) {

		Scanner scanner = new Scanner(System.in);
		System.out.println("Passwort-Generator");

		System.out.println("Bitte geben Sie die gewünschte Länge ein...");
		int length = scanner.nextInt();
		System.out
				.println("Bitte geben Sie die gewünschte Mindestanzahl an Buchstaben ein...");
		int minLetters = scanner.nextInt();
		System.out.println("Ihr Passwort wird generiert...");

		List<Character> chars = new ArrayList<Character>(length);

		Random rnd = new Random();

		int lettersGenerated = 0;
		for (int i = 0; i < length; i++) {
			if (lettersGenerated < minLetters) {
				int r;
				do {
					r = rnd.nextInt(122);
				} while (r < 65 || r > 122);
				char c = (char) r;
				chars.add(c);
				lettersGenerated++;
			} else {
				int r;
				do {
					r = rnd.nextInt(122);
				} while (r < 33 || r > 122);
				char c = (char) r;
				chars.add(c);
			}
		}
	
		Collections.shuffle(chars);
		StringBuilder sb = new StringBuilder();
		for (char c : chars) {
			sb.append(c);
		}

		System.out.println("Ihr Passwort: " + sb.toString());

	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
R Java (Eclipse) "Lagerverwaltung" HILFE Java Basics - Anfänger-Themen 13
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 17
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 3
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
R Hilfe bei removeduplicates Java Basics - Anfänger-Themen 5
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
Q Hilfe bei Hausaufgeben Java Basics - Anfänger-Themen 2
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
S Hilfe Java Basics - Anfänger-Themen 1
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
Chabub Hilfe bei Stacks und Queue Java Basics - Anfänger-Themen 2
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
A Hilfe bei Java Projekt Java Basics - Anfänger-Themen 4
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
B Hilfe bei Generics Java Basics - Anfänger-Themen 11
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
M Brauche Hilfe bei If-Scheifen Java Basics - Anfänger-Themen 2
M Hilfe bei Strukturierung eines Buchungssystems Java Basics - Anfänger-Themen 3
J Replace mit Hilfe von ArrayLists Java Basics - Anfänger-Themen 6
J Hilfe bei Übungsaufgabe Java Basics - Anfänger-Themen 17
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
B Hilfe bei einer rekursiven Methode Java Basics - Anfänger-Themen 3
K Java Projekt Hilfe Java Basics - Anfänger-Themen 5
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
A suche dringend Hilfe!! Java Basics - Anfänger-Themen 6
S Hilfe. Generics und BiFunctions Java Basics - Anfänger-Themen 10
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
E Ich Brauche Hilfe Java Basics - Anfänger-Themen 3
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
F Hilfe - Wahrheitswert überprüfen ohne If Java Basics - Anfänger-Themen 2
M Hilfe bei Testfällen. Java Basics - Anfänger-Themen 12
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
A Hilfe, LinkedList Java Basics - Anfänger-Themen 2
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
F Regex Hilfe Java Basics - Anfänger-Themen 3
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei meinem Code [Schleife]? Java Basics - Anfänger-Themen 5
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
S Wie ende ich mein Pogrammierung? [Hilfe] Java Basics - Anfänger-Themen 1
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
I Dezimalzahlen - Hilfe Java Basics - Anfänger-Themen 2
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
S Ein- Ausgaben Java [Hilfe] Java Basics - Anfänger-Themen 3
P Hilfe bei Double Java Basics - Anfänger-Themen 1
J Hilfe zu Codingame Java Basics - Anfänger-Themen 1
I Objekte Hilfe Java Basics - Anfänger-Themen 8
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
B Dropbox Anbindung, Hilfe bei Authentification -> HttpServletRequest request Java Basics - Anfänger-Themen 3
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
Blender3D GOTO (aus Digitaluhr, Hilfe !) Java Basics - Anfänger-Themen 38
Z Digitaluhr, Hilfe ! Java Basics - Anfänger-Themen 24
W Hilfe beim Chat Programm Java Basics - Anfänger-Themen 14
Z Hilfe, Summenformel in Java Java Basics - Anfänger-Themen 15
I Hilfe bei experiment Java Basics - Anfänger-Themen 2
I Hilfe bei der Logik Java Basics - Anfänger-Themen 9
N Hilfe bei Unistoff Java Basics - Anfänger-Themen 3
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
M Hilfe bei Projektorientierungs-Aufgabe !! Java Basics - Anfänger-Themen 3
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
M Hamstersimulator- lösung hilfe benotigt Java Basics - Anfänger-Themen 3
M Hamstersimulator Hilfe Java Basics - Anfänger-Themen 46
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
D Hilfe um Pseudocode Analyse! Java Basics - Anfänger-Themen 1
J Variablen Hilfe bei diesem Code Java Basics - Anfänger-Themen 6
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
F Potenz ausrechnen Hilfe! Java Basics - Anfänger-Themen 7
D Hilfe bei Codeverständnis Java Basics - Anfänger-Themen 15
F Hilfe bei Rekursion... Java Basics - Anfänger-Themen 4
H Interface Hilfe mit Code Java Basics - Anfänger-Themen 4
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
der_Schokomuffin Hilfe gesucht: String wird auf null gesetzt! Java Basics - Anfänger-Themen 17
S Hilfe für Aufgabe Java Basics - Anfänger-Themen 4
F Hilfe, bin Anfänger! Java Basics - Anfänger-Themen 4
TpKey10 Ich brauche Hilfe Java Basics - Anfänger-Themen 14
F Ich brauche Hilfe bei Objektorientierter Programmierung... Java Basics - Anfänger-Themen 19
B Hilfe bei Regex - Erstellung Java Basics - Anfänger-Themen 5
G Cosinus mit Hilfe der Taylorreihe Java Basics - Anfänger-Themen 11
F Primzahlsuche Schleife funktioniert nicht, HILFE! Java Basics - Anfänger-Themen 8
H Hilfe bei Javakarol Java Basics - Anfänger-Themen 10
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Trinkgeld Rechner und Promillenrechener Hilfe Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben