Passwort abfrage how to?

Allgemeine Themen rund um Java

Moderator: arittner

Passwort abfrage how to?

Beitragvon Floh » 10.03.2010, 10:55

Hey liebe Leute,
ich bin gerad dabei mir eine Passwort abfrage zu schreiben, doch weiß nicht genau wie das funktioniert.
könnt ihr mal bitte über den mageren quellcode rüberschauen und mir sagen was ich noch verändern, löschen hinzufügen muss?

Mit freundlichen Grüßen

Floh

Code: Alles auswählen
import java.io.*;
public class login {

   
   public static void main(String[] args) throws IOException {
      System.out.println("Bitte Password eingeben: ");
      
            BufferedReader in = new BufferedReader(
                 new InputStreamReader( System.in ) );
            String hallo = in.readLine();
               if  (hallo == hallo)
                  System.out.println("Korrektes Password");
               else if (hallo != hallo)
                  System.out.println("Nicht Korrekt das PW!");      
      

   }

}
Always look on the bright side of life :)
Benutzeravatar
Floh
 
Beiträge: 23
Registriert: 29.10.2009, 13:05
Wohnort: Baden-Württemberg

Re: Passwort abfrage how to?

Beitragvon recJake » 10.03.2010, 12:53

if (hallo == hallo)

Das ist so gewollt, ja? Du willst wirklich den gerade eingegebenen Wert mit sich selbst vergleichen?
J..e
Willst Du coden, so code. Willst Du nutzen, so nutze. Willst Du beides, lass es!
Benutzeravatar
recJake
 
Beiträge: 568
Registriert: 19.07.2006, 12:50
Wohnort: IDEs

Re: Passwort abfrage how to?

Beitragvon ebaumann » 11.03.2010, 09:05

Abgesehen davon, dass ein Referenzvergleich a == a immer wahr ist, werden Strings (Objekte) meistens mit equals() verglichen (Es gibt Fälle, in denen ein Referenzvergleich Sinn ergibt).
ebaumann
 
Beiträge: 91
Registriert: 22.01.2009, 10:53
Wohnort: Würzburg

Re: Passwort abfrage how to?

Beitragvon arittner » 11.03.2010, 11:00

Moin!

Hier noch eine Kanone für Spatzen:

http://www.rgagnon.com/javadetails/java-0400.html

Da man Kennwörter nie speichern sollte, ist es wichtig nur Hashes zu vergleichen.

Beste Grüße,
Aljoscha.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2887
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: Passwort abfrage how to?

Beitragvon Floh » 12.03.2010, 13:35

das hallo == hallo war nur ein beispiel,
micht würde es interesieren wie das aussieht wenn ich
if (a == b)
system.out....
else if (a != b)
system.out....


das ist das aktuelle beispiel vielleicht könnt ihr mir dazu mehr sagen

Code: Alles auswählen
import java.io.*;


public class login {
   static String Password;
   static String root;
   static String eingabe;
   String Cool;
   
public static void main(String[] args)throws IOException {
   BufferedReader Test = new BufferedReader ( new InputStreamReader( System.in ) );
      System.out.println("Bitte geben sie das Passwort ein: ");
         Password = Test.readLine();
            if (eingabe == Password)
               System.out.println("Das Passwort ist korrekt");
            else
               System.out.println("Tut mir Lad das war nicht korrekt");
      System.out.println("Bitte geben Sie den Nutzer ein: ");
         eingabe = Test.readLine();
            if (eingabe == root)
               System.out.println("Der Nutzer ist korrekt");   
            else
               System.out.println("Tut mir leid, diesen User gibt es nicht");
                  
   }   
               
                  
}   
Always look on the bright side of life :)
Benutzeravatar
Floh
 
Beiträge: 23
Registriert: 29.10.2009, 13:05
Wohnort: Baden-Württemberg

Re: Passwort abfrage how to?

Beitragvon arittner » 12.03.2010, 14:37

Moin!

wie schon geschrieben wurde: Objekt-Inhalt-Vergleiche immer mit equals, nie mit ==

Beste Grüße,
Josch.
JNBB/BeanDev: Das deutsche Blog zur NetBeans Platform
Bild
Sun Certified Specialist for NetBeans IDE
Benutzeravatar
arittner
 
Beiträge: 2887
Registriert: 05.08.2008, 08:20
Wohnort: Südniedersachsen

Re: Passwort abfrage how to?

Beitragvon ebaumann » 12.03.2010, 15:16

Falls du mit C oder C++ vertraut bist: Die Java-Referenzen sind wie Zeiger in C/C++. a == b ist der Vergleich zweier Zeiger (-Adressen). In C++ würdest du folgendes schreiben zum Vergleich eines Stringinhalts, falls a und b Zeiger auf z.B. std::string-Objekte sind: if (*a == *b) ... oder if (a->operator==(*b)) ..., also dereferenzieren. In Java trifft a == b nur zu, falls a und b ein und das selbe Objekt referenzieren (auf es "zeigen").

In deinem Beispiel neuen Beispiel ist eingabe == passwort immer falsch, da beide unterschiedliche String-Referenzen sind (auf je eine andere static-Variable). Das gilt auch für eingabe == root.

Zur Vollständigkeit: In C gibt es dafür die Funktion strcmp(), die "Array"-Inhalte ("nullterminierte" chars) vergleicht, ein a == b vergleicht nur die Zeiger.
ebaumann
 
Beiträge: 91
Registriert: 22.01.2009, 10:53
Wohnort: Würzburg

Re: Passwort abfrage how to?

Beitragvon Floh » 12.03.2010, 15:40

Danke euch,
ich versuche es mit equals() umzuschreiben...wenn ich es nicht schaffe melde ich mich nochmal bei euch :)

lieber gruß
floh
Always look on the bright side of life :)
Benutzeravatar
Floh
 
Beiträge: 23
Registriert: 29.10.2009, 13:05
Wohnort: Baden-Württemberg

Re: Passwort abfrage how to?

Beitragvon Floh » 12.03.2010, 16:54

Hey,
wollte mich nur nochmal kurz bedanken :) es hat funktioniert ;)

Hier meine Lösung:
Code: Alles auswählen
import java.io.*;

public class login {
   static String Password = "Root1";
   static String Root = "Root";
   
   
public static void main(String[] args)throws IOException {
   
   BufferedReader Test = new BufferedReader ( new InputStreamReader( System.in ) );   
   
   do    {
      System.out.println("Bitte geben Sie den Nutzer ein: ");
         Root = Test.readLine();
            if (Root.equals("Root"))
               System.out.println("Der Nutzer ist korrekt");   
            else
               System.out.println("Tut mir leid, diesen User gibt es nicht");
      }
   while (!Root.equals("Root"));
   do{
   System.out.println("Bitte geben sie das Passwort ein: ");
      Password = Test.readLine();
            if (Password.equals("Root1"))
               System.out.println("Das Passwort ist korrekt");
            else
               System.out.println("Tut mir Lad das war nicht korrekt");
   }
   while (!Password.equals("Root1"));      
   
  }   

}   


Lieber Gruß
Floh
Benutzeravatar
Floh
 
Beiträge: 23
Registriert: 29.10.2009, 13:05
Wohnort: Baden-Württemberg


Zurück zu Java - Allgemeines

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast