Passwortabfrage in der Konsole

  • Themenstarter Themenstarter BinGast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
B

BinGast

Gast
Hallo,

wie kann ich unter der Konsole eine Passwortabfrage realisieren?

Danke schon im voraus
 
das ganze mal als ein codeschnipsel:

Code:
if(args[0].equals(passwort) ){

System.out.println("Passwort ok");
}else{

System.out.println("Passwort falsch");
System.exit(1);
}


ungetestet, aber so ähnlich sollte es gehen.

gruß math55
 
Hallo,

wie ich das einlese ist mir schon klar, aber wie schaffe ich es das das eingebene Wort nicht auf dem Bildschirm erscheint? Das ist das Problem...

Danke für eure weitere Hilfe
 
Es gibt eine Funktion die heißt JPasswordField. Versuchs mal damit. Wie genau es funktioniert kann ich dir grad nicht sagen. Google mal danach
 
JPasswordField ist für die Konsole ziemlich ungeeignet ;-)

Versuchs mal so:

Code:
mport java.io.*;
import java.awt.*;

public class PwdConsole {
 public static void main(String[] args) throws Exception {
  ConsoleEraser consoleEraser = new ConsoleEraser();
  System.out.print("Password?  ");
  BufferedReader stdin = new BufferedReader(new
       InputStreamReader(System.in));
  consoleEraser.start();                       
  String pass = stdin.readLine();
  consoleEraser.halt();
  System.out.print("\b");
  System.out.println("Password: '" + pass + "'");
  }
 }

class ConsoleEraser extends Thread {
 private boolean running = true;
 public void run() {
  while (running) {
   System.out.print("\b ");
   }
 }

 public synchronized void halt() {
  running = false;
 }
}
 
Nur eine Anmerkung: Ein Passwortfeld bringt überhaupt nicht, wenn du jemanden davon abhalten möchtest dein Programm zu benutzen. Mit einem einfachen Decompiler wird es dem "Angreiffer" gelingen das Passwort heraus zu finden. ;-) (Nur so am Rande bemerkt)
 
Es wurde nicht gesagt, dass das Passwort dazu verwendet werden soll, die Applikation zu schützen. Ein einfaches Durchreichen zur Anmeldung an eine Datenbank wäre auch denkbar. Gesetzt den Fall hast du natürlich Recht.

Das Einsetzen von Decompilern um ein Programm zu nutzen setzt schon einiges an krimineller Energie voraus. Aber letztendlich kann man wohl kein Programm absoulut sicher machen. Man kann es dem Angreifer nur schwerer machen. Hier hilft zum Beispiel der Einsatz von Obfuskatoren. Aber das sprengt hier wohl den Rahmen dieses Threads.
 
Pulvertoastman hat gesagt.:
Das Einsetzen von Decompilern um ein Programm zu nutzen setzt schon einiges an krimineller Energie voraus.

Naja, dadurch das teilweise schon die IDEs die Class Dateien direkt öffnen können (dank beiliegenden decompiler), kann das ja schon fast versehentlich passieren ;-)

Aber ansonsten habt Ihr natürlich recht, man kann es nicht sicher machen, nur schwerer.
Man könnte das Passwort ja im Source verschlüsseln. Das wäre dann doppelt sicher (einmal weil man ein Decompiler braucht, und dann auch noch entschlüsseln muss). Schon aus Fun könnte man ja eine Exklusiv-Oder Verschlüsselung reinpacken, auch wenn das Passwort unwichtig ist. Bei wichtigen Passwörtern sollte man unter MD5 nicht anfangen...
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben