Passwort verschlüsseln mit MD5

Status
Nicht offen für weitere Antworten.

de1m

Mitglied
Hallo Leute !

Brauche seeeehr dringend eure Hilfe!
also es geht um folgendes:

Ich hab ein Jabber-Client der sich auf Java basiert, aber Problem ist das er das Passwort in eine buddyspace.conf Datei speichert, die man mühelos mit Editor aufmachen kann und Passwort nachschauen. Ich hab jetzt gefuden dass man das irgendwie mit MD5 das Password verschlüsseln kann. Ich hab Source-Code runtergeladen und jetzt weiss ich nicht wo ich da was ändern muss um das Passwort zu verschlüsseln
vielleicht die Datei hab ehrlichgesagt keine Ahnung:

verkürzt:

ein mal BSMainFrame(befindet sich in souce \buddyspace\client\edu\ou\kmi\buddyspace\gui):


Code:
try {
            File file = new File("./buddySpace.conf");
            FileInputStream input = new FileInputStream(file);
            props.load(input);
        } catch (IOException e) {
            System.out.println("Cannot read conf file");
            return false;
        } catch (NullPointerException e) {
            System.out.println("Cannot read conf file");
            return false;
        }
        return true;
    } 
    
    /** Loads preferences */
    protected void loadPreferences() { 
        
        if (!loadPreferences(properties))
            return;
        
        username = properties.getProperty(PREF_NAME_USERNAME, DEF_USERNAME);
        resource = properties.getProperty(PREF_NAME_RESOURCE, DEF_RESOURCE);
        server = properties.getProperty(PREF_NAME_SERVER, DEF_SERVER);
        password = properties.getProperty(PREF_NAME_PASSWORD, DEF_PASSWORD);
        port = Integer.parseInt(properties.getProperty(PREF_NAME_PORT, Integer.toString(DEF_PORT)));
        useSSL = properties.getProperty(PREF_NAME_USE_SSL, useSSL? "true":"false").equals("true");
        priority = Integer.parseInt(properties.getProperty(PREF_NAME_PRIORITY, Integer.toString(DEF_PRIORITY)));
        autoLogin = properties.getProperty(PREF_NAME_AUTO_LOGIN, autoLogin? "true":"false").equals("true");
        
        fileServer = properties.getProperty(PREF_NAME_FILE_SERVER, DEF_FILE_SERVER);
        fileServerPath = properties.getProperty(PREF_NAME_FILE_SERVER_PATH, DEF_FILE_SERVER_PATH);
        fileServerPort = properties.getProperty(PREF_NAME_FILE_SERVER_PORT, DEF_FILE_SERVER_PORT);
        proxy = properties.getProperty(PREF_NAME_PROXY, DEF_PROXY);
        proxyPort = properties.getProperty(PREF_NAME_PROXY_PORT, DEF_PROXY_PORT);
        
        compactView = properties.getProperty(PREF_NAME_COMPACT_VIEW, compactView? "true":"false").equals("true");
        onlyOnline = properties.getProperty(PREF_NAME_ONLY_ONLINE, onlyOnline? "true":"false").equals("true");
        dockWindows = properties.getProperty(PREF_NAME_DOCK_WINDOWS, dockWindows? "true":"false").equals("true");
        showMsgs = properties.getProperty(PREF_NAME_SHOW_MSGS, showMsgs? "true":"false").equals("true");
        forceMsgsIntoChat = properties.getProperty(PREF_NAME_FORCE_MSGS_INTO_CHAT, forceMsgsIntoChat? "true":"false").equals("true");
        autoAway = properties.getProperty(PREF_NAME_AUTO_AWAY, autoAway? "true":"false").equals("true");
        showStatus = properties.getProperty(PREF_NAME_SHOW_STATUS, showStatus? "true":"false").equals("true");
        showDebug = properties.getProperty(PREF_NAME_SHOW_DEBUG, showDebug? "true":"false").equals("true");
        scrollTabs = properties.getProperty(PREF_NAME_SCROLL_TABS, scrollTabs? "true":"false").equals("true");
        //logoImgPath = properties.getProperty(PREF_NAME_LOGO_IMG_PATH, DEF_LOGO_IMG_PATH);
        
        autoSelectChat = properties.getProperty(PREF_NAME_AUTO_SELECT, autoSelectChat? "true":"false").equals("true");
        newMsgSoundFileName = properties.getProperty(PREF_NAME_NEW_MSG_SOUND_FILE_NAME, DEF_NEW_MSG_SOUND_FILE_NAME);
        
        currentLookAndFeel = properties.getProperty(PREF_NAME_LAF, "");
        
        //ixPropsPath = properties.getProperty(PREF_NAME_IX_PROPS_PATH, DEF_IX_PROPS_PATH);
    } 
 
    /** Saves preferences */
    protected void savePreferences() { 
                             
        // *** pripadne ulozit/vytvorit jen profil se zadanym cislem nebo jmenem ***
  /*Preferences prefs = Preferences.userNodeForPackage(BSCore.class); 
  
        prefs.putByteArray(PREF_NAME_USERNAME, username.getBytes()); 
  prefs.putByteArray(PREF_NAME_RESOURCE, resource.getBytes()); 
        prefs.putByteArray(PREF_NAME_SERVER, server.getBytes()); 
        prefs.putByteArray(PREF_NAME_PASSWORD, password.getBytes()); 
        prefs.putInt(PREF_NAME_PORT, port); 
        
        prefs.putByteArray(PREF_NAME_PROXY, proxy.getBytes()); 
        prefs.putInt(PREF_NAME_PROXY_PORT, Integer.parseInt(proxyPort)); 
        prefs.putByteArray(PREF_NAME_FILE_SERVER, fileServer.getBytes()); 
        prefs.putByteArray(PREF_NAME_FILE_SERVER_PATH, fileServerPath.getBytes()); 
        prefs.putByteArray(PREF_NAME_FILE_SERVER_PORT, fileServerPort.getBytes()); 
        prefs.putByteArray(PREF_NAME_IX_PROPS_PATH, ixPropsPath.getBytes()); 
        prefs.putByteArray(PREF_NAME_LOGO_IMG_PATH, logoImgPath.getBytes()); 
        //prefs.putBoolean( NAME_DOCK_FOCUS_VIEW, bDockFocusView ); */
        
        properties.setProperty(PREF_NAME_USERNAME, username);
  properties.setProperty(PREF_NAME_RESOURCE, resource); 
        properties.setProperty(PREF_NAME_SERVER, server); 
        properties.setProperty(PREF_NAME_PASSWORD, password); 
        properties.setProperty(PREF_NAME_PORT, Integer.toString(port)); 
        properties.setProperty(PREF_NAME_USE_SSL, useSSL? "true":"false");
        properties.setProperty(PREF_NAME_PRIORITY, Integer.toString(priority)); 
        properties.setProperty(PREF_NAME_AUTO_LOGIN, autoLogin? "true":"false");
        
        properties.setProperty(PREF_NAME_FILE_SERVER, fileServer); 
        properties.setProperty(PREF_NAME_FILE_SERVER_PATH, fileServerPath); 
        properties.setProperty(PREF_NAME_FILE_SERVER_PORT, fileServerPort); 
        properties.setProperty(PREF_NAME_PROXY, proxy); 
        properties.setProperty(PREF_NAME_PROXY_PORT, proxyPort); 
        
        properties.setProperty(PREF_NAME_COMPACT_VIEW, compactView? "true":"false");
        properties.setProperty(PREF_NAME_ONLY_ONLINE, onlyOnline? "true":"false");
        properties.setProperty(PREF_NAME_DOCK_WINDOWS, dockWindows? "true":"false");
        properties.setProperty(PREF_NAME_SHOW_MSGS, showMsgs? "true":"false");
        properties.setProperty(PREF_NAME_FORCE_MSGS_INTO_CHAT, forceMsgsIntoChat? "true":"false");
        properties.setProperty(PREF_NAME_AUTO_AWAY, autoAway? "true":"false");
        properties.setProperty(PREF_NAME_SHOW_STATUS, showStatus? "true":"false");
        properties.setProperty(PREF_NAME_SHOW_DEBUG, showDebug? "true":"false");
        properties.setProperty(PREF_NAME_SCROLL_TABS, scrollTabs? "true":"false");
        //properties.setProperty(PREF_NAME_LOGO_IMG_PATH, logoImgPath);
        
        properties.setProperty(PREF_NAME_AUTO_SELECT, autoSelectChat? "true":"false");
        properties.setProperty(PREF_NAME_NEW_MSG_SOUND_FILE_NAME, newMsgSoundFileName);
        
        properties.setProperty(PREF_NAME_LAF, currentLookAndFeel);
        
        //properties.setProperty(PREF_NAME_IX_PROPS_PATH, ixPropsPath); 
        
        saveProperties(properties);
    }
    
    public boolean saveProperties(Properties props) {
        if (props == null) return true;
        
        Enumeration propKeyes = props.keys();
        while (propKeyes.hasMoreElements()) {
            String k = (String) propKeyes.nextElement();
            properties.setProperty(k, (String) props.get(k));
        }
        
        try {
            File file = new File("./buddySpace.conf");
            FileOutputStream output = new FileOutputStream(file);
            props.store(output, "BuddySpace configuration file");
        } catch (IOException e) {
            System.out.println("Cannot write conf file");
            return false;
        } catch (NullPointerException e) {
            System.out.println("Cannot write conf file");
            return false;
        }
        return true;
    }
    
    public boolean saveStatusesBarJIDs(Enumeration jids) {
        Properties props = new Properties();
        
        if (!loadPreferences(props))
            return false;
        
        int jidNum = 0;
        while (jids.hasMoreElements()) {
            jidNum++;
            JID jid = (JID) jids.nextElement();
            String name = new String (PREF_NAME_STATUSES_BAR_JID + Integer.toString(jidNum));
            props.setProperty(name, jid.toString());
            //properties.setProperty(name, jid.toString());
        }
        
        props.setProperty(PREF_NAME_STATUSES_BAR_JID_NUM, Integer.toString(jidNum));
        //properties.setProperty(PREF_NAME_STATUSES_BAR_JID_NUM, Integer.toString(jidNum));
        
        return saveProperties(props);
    }
    
    
    public boolean addAndSavePreferences(String[] names, String[] values) {
        Properties props = new Properties();
        
        if (!loadPreferences(props))
            return false;
        
        int prefNum = (names.length < values.length)? names.length : values.length;
        for (int i=0; i < prefNum; i++) {
            props.setProperty(names[i], values[i]);
        }

vielleicht irgendwo hier drin ist es !
 

hupfdule

Top Contributor
1. Code bitte auch in die entsprechenden Code-Tags setzen. Lässt sich weitaus besser lesen.

2. Nicht so viel Code posten. Nur den relevanten

3. MD5 wird dir nichts helfen. MD5 ist kein Verschlüsselung, sondern ein Hash-Verfahren. Das bedeutet, es ist ein Ein-Weg-Verfahren. Du kannst du zu einem eingegebenen Passwort überprüfen, ob es zu einem gegebenen Hash passt. Du kannst jedoch nicht aus einem Hash das zugehörige Passwort berechnen. Genau das ist aber notwendig. Denn der Jabber-Server brauch das Passwort im Klartext, damit er seinerseits es mit einem gespeicherten MD5-Hash vergleichen kann.
Wenn du verhindern willst, dass jemand das Passwort aus der Datei auslesen kann, setze die Rechte auf die Datei entsprechend restriktiv. Allerdings, wenn du so viel Wert auf dein Passwort legst, solltest du dich auch per SSL mit dem Jabber-Server verbinden. Sonst kann man dein Klartextpasswort ohnehin leicht aus den TCP-Daten auslesen.
 

de1m

Mitglied
also ich hab mich vielleich falsch ausgedrückt, ich brauche nur dass man das Password nicht sieht, also statt password=meinpass(steht so in config-Datei) will ich das da entweder gar nichts steht oder irgendwie unsichtbar oder verschlüsselt :)
To hupfdule SSL brauche ich nicht, weil das nur für Intranet in meine Firma ist.
Bei uns ist es eine Rechtslinie, dass man die Passwörter nicht sehen darf auch Systemadmin
 

hupfdule

Top Contributor
de1m hat gesagt.:
ich brauche nur dass man das Password nicht sieht, also statt password=meinpass(steht so in config-Datei) will ich das da entweder gar nichts steht oder irgendwie unsichtbar oder verschlüsselt :)
OK, dann kannst du aber immer noch nicht MD5 verwenden. :) Denn damit geht das nicht. Du musst schon eine richtige Verschlüsselung anwenden. Der Aufwand damit ist etwas größer. Denn du musst ja sowohl ver- als auch entschlüsseln.

Sieht dazu [1] und [2].
Allerdings kannst du deinem Jabber-Client auch einfach sagen, dass er das Passwort nicht speichern soll. Dann musst du es halt jedes mal eingeben.


[1] http://java.sun.com/j2se/1.5.0/docs/guide/security/jce/JCERefGuide.html
[2] http://www.tutorials.de/forum/java/212543-verschluesselung.html (kurzes Code-Beispiel)
 

de1m

Mitglied
kann man das nicht machen, dass er den Passwort an Server unverschlüsselt schickt und in config-Datei Hash von Passwort schreibt?
 

hupfdule

Top Contributor
de1m hat gesagt.:
Kannst du mir sagen wie ich das mit nicht speicher machen kann ?
Nein. Ist vom Programm abhängig. Kann man das dort nicht abschalten? Ich hab keine Lust durch den Code zu gucken, aber notfalls kannst du eben dort abschalten. Müsstest dann aber dafür sorgen, dass er den Benutzer beim Einloggen nach dem Passwort fragt.

kann man das nicht machen, dass er den Passwort an Server unverschlüsselt schickt und in config-Datei Hash von Passwort schreibt?
Nein. Aus dem o.g. Grund. MD5 ist ein Einweg-Verfahren. Du kannst aus einem Passwort einen Hash berechnen, aber nicht umgekehrt. Wenn du nur den Hash gespeichert hast, kannst du also nicht das Klartextpasswort an den Server schicken, weil du es nicht mehr hast und nicht errechnen kannst.
 

Wyvern

Mitglied
Ver- und Entschlüsselung wird kurz in diesem Beispiel erklärt. Scjau mal, ob Du da noch ein wenig nachgoogeln kannst. Ich habs auf jeden Fall schonmal verwenden können.
 

de1m

Mitglied
noch eine Frage, in dem Ordner (BuddySpace) sind viele andere Ordener drin und .java Dateien

Gibt's da eine extra Datei die das ganze in eine Programm kompiliert oder wie macht man das ?
 

hupfdule

Top Contributor
Oh, wenn ich dich richtig verstehe, kennst du dich mit Java nicht aus? Dann wirst du auch kaum die Verschlüsselung selbst hinbekommen. Da müsstest du schon damit programmieren können.

Kompilieren tut man mit einem extra Befehl.
 

de1m

Mitglied
de1m hat gesagt.:
Ver- und Entschlüsselung wird kurz in diesem Beispiel erklärt. Scjau mal, ob Du da noch ein wenig nachgoogeln kannst. Ich habs auf jeden Fall schonmal verwenden können.

Jaa, das sieht schon mal gut aus ! :)
 

de1m

Mitglied
Das hab schon von Anfang an gemeint! :)

Ich hab JabberServer und -Client konfiguiert, damit es mit einander funktioniert, und dann hat mein Ausbilder festgestellt, dass der Client das Passwort in Klartext speichert, aber in Programm kann man das nicht einstellen, deswegen hat er mir gesagt (das war vor eine Woche) das ich das Programm umprogramieren muss. Quellcode hab ich jetzt, aber ich weiss gar nicht was ich damit machen kann und wie !

...tja, das war meine traurige Geschichte ! ;-)
 

hupfdule

Top Contributor
de1m hat gesagt.:
was für extra Befehl ist es ?

javac. Aber wenn das viele Klassen sind, musst du den Klassenpfad korrekt setzen. Liegt im Verzeichnis vlt. eine build.xml? Dann ist das einfacher zu kompilieren. Dann brauchst du Apache ant und kannst im Projektverzeichnis einfach 'ant' aufrufen (funktioniert ähnlich wie 'make').
 

de1m

Mitglied
ne, da gibt'S keine einzige .xml datei
Ich hab ein Javaeditor, der eigentlich mit javac arbeitet
Also wenn ich eine .java-Datei aufmache, dann kann ich das kompiliern, aber nur eben eine Datei und nicht komplettes Verzeichnis !
 

hupfdule

Top Contributor
Also wenn dein Editor eine richtige IDE ist, sollte die auch mit vollständigen Projekten klar kommen. Kannst dir auch eine andere IDE, wie Eclipse nehmen, dort ein Projekt draus machen und das dann damit kompilieren. Allerdings ist der Aufwand der Installation dann sicher höher als das eigentliche Kompilieren. ;-)
 

de1m

Mitglied
Leute Hilfe brauche ich immer noch! :)
Eine Frage, wenn ich z.B SSL benutzen werde, wird Passwort dann weiter in Klartext gespeichert ?
 

hupfdule

Top Contributor
de1m hat gesagt.:
Eine Frage, wenn ich z.B SSL benutzen werde, wird Passwort dann weiter in Klartext gespeichert ?

Natürlich. Das eine hat mit dem anderen ja nix zu tun. Das Speichern des Passworts erledigt der Client nur für sich selbst. Er könnte das wie gesagt auch lassen und den Benutzer bei jedem Login danach fragen.
SSL wird nur für die Übertragung benutzt. Das heißt, dein Klartext-Passwort wird niemand aus den TCP-Daten filtern können, da diese verschlüsselt sind. Jedoch hat das auf die Speicherung des Passworts in der Konfiguration keinen Einfluss. Wenn es darum geht, dann hast du quasi nur die beiden Optionen:

1. Quellcode bearbeiten, damit das Passwort beim Schreiben ver- und beim Lesen entschlüsselt wird
2. Quellcode anpassen, damit das Passwort nicht gespeichert, sondern stattdessen bei jedem Login abgefragt wird.
 

de1m

Mitglied
Noch mal, auf dem Server ist mein Password gespeichert(Server kann auch MD5) und wenn ich beim Einloggen mein Password eingebe, wird ein Hash generiert, der dann an Server geschickt wird, der Server bekommt Hash von mir, genriert dann von meinem Passwort der bei ihm gespeicher ist auch ein Hash und wenn die gleich sind dann lässt er mich rein, spricht praktisch ich bin angemeldet


Kann ich in diesem Fall dann MD5 benutzen ?
 

hupfdule

Top Contributor
Wenn das tatsächlich so gelöst ist, dann klappt das! Wenn also der Server das Klartext-Passwort hat, dann kann er den Hash generieren und du musst bei dir dann nur noch den Hash speichern.

Allerdings, läuft das eurer Policy nicht zuwider? Denn dann ist das Klartext-Passwort (und nicht nur deins) ja auf dem Server gespeichert. Und so was sollte doch verhindert werden.
 

de1m

Mitglied
Aus Serverseite ist es nicht in Klartext gespeichert, aber Server kann das trotzdem aus meinem Password ein Hash generieren.

Soweit ich das jetzt weiss brauche ich keine extraprogramm um md5 zu benutzen oder ? Also da gibt's schon befehle in Java?

Kannst du mir ein code geben, den ich dann an meine Programm anpassen kann ?

ich hab z.B.: das gefunden

Code:
import java.io.*;
import java.security.MessageDigest;
public class MDGenerator
{
  static byte[] messageDigest( String file, String algo ) throws Exception
  {
    MessageDigest messagedigest = MessageDigest.getInstance( algo );
    byte[] md = new byte[8192];
    InputStream in = new FileInputStream( file );
    for ( int n = 0; (n = in.read( md )) > –1; )
      messagedigest.update( md, 0, n );
    return messagedigest.digest();
  }
  static void digestDemo( String file, String algo ) throws Exception
  {
    byte[] digest = messageDigest( file, algo );
    System.out.println( algo + ", Schlüssellänge: " + digest.length * 8 + " Bit" );
    for ( byte b : digest )
      System.out.printf( "%02x", b );
    System.out.println( "\n" );
  }
  public static void main( String[] args ) throws Exception
  {
    digestDemo( "MDGenerator.java", "SHA" );
    digestDemo( "MDGenerator.java", "MD5" );
  }
}

oder

Code:
import java.io.*;
import java.security.MessageDigest;

public class MDGenerator
{
  private static byte[] messageDigest( String file, String algo ) throws Exception
  {
    MessageDigest messagedigest = MessageDigest.getInstance( algo );
    byte[] md = new byte[8192];
    InputStream in = new FileInputStream( file );
    for( int i = 0; (i = in.read( md ))> -1;)
    {
      messagedigest.update( md, 0, i );
    }
    return messagedigest.digest();
  }

  static String generateHash( String file, String algo ) throws Exception
  {
    byte[] digest = messageDigest( file, algo );
    String output = "";
    for ( byte b : digest )
      output = output + Integer.toHexString( b & 0xFF);
    return output;
  }
}


aber ich glaube,dass das nur MD5-Hash generatoren sind, wobei ich nicht sicher bin !
 

hupfdule

Top Contributor
de1m hat gesagt.:
Aus Serverseite ist es nicht in Klartext gespeichert, aber Server kann das trotzdem aus meinem Password ein Hash generieren.
Dann hilft dir das nichts. Das ist das, was ich die ganze Zeit versuche dir zu erklären. Auf einer Seite muss das Passwort im Klartext vorliegen. Auf der anderen Seite reicht der Hash. Wenn der Server den Hash gespeichert hat (das wird sicherlich so sein, oder?), dann musst du dem Server das Klartext Passwort liefern. Dann kann er es hashen und die Hashs vergleichen.
Angenommen der Server würde statt einem Klartext-Passwort einen Hash erwarten und du würdest den Hash speichern, hättest du nichts gewonnen (das hab ich in meiner obigen Antwort leider nicht erwähnt). Denn ein potentieller Angreifer bräuchte dein Klartextpasswort nicht. Er muss ja nur den Hash rüber schicken. Der Hash wäre also quasi das Passwort. Einfaches auslesen und rüberschicken reicht.

Soweit ich das jetzt weiss brauche ich keine extraprogramm um md5 zu benutzen oder ? Also da gibt's schon befehle in Java?
Ohne mir deine Codeabschnitte im Detail angeguckt zu haben, sind das schon die richtigen Methoden. Aber wie gesagt, wird dir so nichts bringen....

aber ich glaube,dass das nur MD5-Hash generatoren sind, wobei ich nicht sicher bin !
Was ist denn ein MD5-Hash Generator? Eine Klasse, die einen String in einen Hash wandelt? Wär doch super, oder? ;-)

Damit zu zur Thematik MD5 noch etwas mehr verstehst:
http://de.wikipedia.org/wiki/MD5
http://de.wikipedia.org/wiki/Hash-Funktion

Dort steht das sicher besser erklärt, als ich das jetzt hinbekomme. Die Berechnungsalgorithmen kannst du dabei natürlich überlesen. ;-)

So wie ich dich verstehe, wird dir MD5 nichts bringen.
Also zum Rekapitulieren:

Der Server speichert dein Passwort als MD5 Hash. (das ist vernünftig)
Dein Client speichert dein Passwort im Klartext. (laut eurer Policy verboten)

Wo du ansetzen musst, ist definitv der Client. Entweder du bringst ihm bei, dass Passort verschlüsselt (nicht gehasht!) zu speichern oder zwingst ihn dich jedes mal zu fragen. Zumindest, wenn ich die Anforderungen richtig vertstanden habe. Du brauchst dich aber noch nicht mit MD5 oder Verschlüsselung beschäftigen, solange nicht klar ist, wie der Server das Passwort erwartet (wobei ich mir da ziemlich sicher bin).
 

de1m

Mitglied
ok, ich frag noch wie das genau auf Serverseite ist und dann komm ich wieder ! :)
Für heute war das glaube ich
P.S bis morgen !!
 

Wyvern

Mitglied
Wobei für MD5 bereits Kollisionen (= 2 unterschiedliche Passwörter, die den selben Hashwert haben) nachgewiesen sind. Ich weiß nicht, WIE sicher ihr die Anwendung braucht.
Aber selbst für SHA-1 ist bewiesen, daß es möglich ist, Kollisionen zu erzeugen. (gefunden wurden meines Wissens aber noch keine)

Kryptographie mit MD5 und SHA-1 war ein Teilthema meiner Diplomarbeit. :)
 

de1m

Mitglied
bei dem Client muss man mit seinem Login und Passwort anmeldet die man in unseres Netzwerk hat. Also in meinem Fall kann ich praktisch die Datei aufmachen und den Passwort den letzt angemeldeten User schauen
 

hupfdule

Top Contributor
de1m hat gesagt.:
bei dem Client muss man mit seinem Login und Passwort anmeldet die man in unseres Netzwerk hat. Also in meinem Fall kann ich praktisch die Datei aufmachen und den Passwort den letzt angemeldeten User schauen

Jetzt verwirrst du mich etwas. Sind Login und Passwort für eure Workstations die selben wie für den Jabber Server? Vermutlich hab ich dich da nur falsch verstanden.
Aber wieso kannst du das Passwort des zuletzt angemeldeten Users sehen? Solltest du nicht nur die Passwörter deiner Accounts (aber dort aller Accounts) sehen können)? Normalerweise speichert ein Client die Passwörter ja nur, damit der Benutzer sie nicht jedes mal eintippen muss.
 

de1m

Mitglied
Guten Morger ! :)
Also, in Netzwerk hat jeder ein Login und Passwort! Und genau die werden auch bei Anmelden in Jabber benutzt, also der User registriert kein neuen Account, der meldet sich mit seinem Name(Login@adresse.jabberserver) an. Wenn z.B mein Kollege sich angemeldet hat im Domen und in Jabber-Client, und danach ich mich in Domen auf dem gleichen Rechner anmelde, kann ich dann die .conf Datei aufmachen und den Passwort, von letztangemeldeten User sehen, spicht ich kann unter seinem Name mich anmelden. Und bei uns ist es eine Rechtslinie, dass die Passworter niergendswo geschieben werden darf oder in Klartext gespeichert
 

de1m

Mitglied
de1m hat gesagt.:
kann ich dann die .conf Datei aufmachen und den Passwort, von letztangemeldeten User sehen,

...das ist aber nicht so tragisch, weil ich immer nur ein Rechner benutze, aber z.B Systemadministrator kann bei jedem in unseres Netztwerk Passwörter sehen
 

hupfdule

Top Contributor
de1m hat gesagt.:
Also, in Netzwerk hat jeder ein Login und Passwort! Und genau die werden auch bei Anmelden in Jabber benutzt, also der User registriert kein neuen Account, der meldet sich mit seinem Name(Login@adresse.jabberserver) an.
Ok, hab ich verstanden.

Wenn z.B mein Kollege sich angemeldet hat im Domen und in Jabber-Client, und danach ich mich in Domen auf dem gleichen Rechner anmelde, kann ich dann die .conf Datei aufmachen und den Passwort, von letztangemeldeten User sehen,
Das hab ich nicht verstanden.
Domen == Domain?
Also, jeder hat in der Domain seinen eigenen Benutzer. Es können mehrere Benutzer den selben Rechner verwenden. Dort ist der Jabber-Client installiert. Dieser sollte doch die Konfiguration pro Benutzer verwalten. Also jeder hat nur seine eigene Konfiguration. Oder nicht? Und damit solltest du auch nur deine Konfiguration sehen. Wieso du den zuletzt eingeloggten Benutzer siehst, ist mir noch nicht ganz klar.
Aber im Grunde auch egal. Die Anforderung ist, dass das Passwort nicht gespeichert werden soll und das leistet euer Client offenbar nicht. Also muss da was getan werden. :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Passwort verschlüsseln schlägt fehl Java Basics - Anfänger-Themen 3
L 4 stelliges Passwort aus bestimmten Zeichen. Java Basics - Anfänger-Themen 27
M Passwort erraten Java Basics - Anfänger-Themen 1
A Passwort erstellen Java Basics - Anfänger-Themen 3
H Passwort Brute Force rekursiv Java Basics - Anfänger-Themen 7
I Passwort in Datenbank speichern um später wieder auszulesen Java Basics - Anfänger-Themen 5
JavaBeginner22 Passwort Generator Java Basics - Anfänger-Themen 2
S ArrayList Username und passwort mit JTextField eingaben abgleichen Java Basics - Anfänger-Themen 10
L Rekursiv gegebenes Passwort herausfinden. Java Basics - Anfänger-Themen 2
C Passwort abprüfen Java Basics - Anfänger-Themen 5
M Code nur für Cracks? Crack the Passwort Übung Java Basics - Anfänger-Themen 7
cpt.Tomato Scanner problem mit Passwort Login Java Basics - Anfänger-Themen 3
B Email versand - aber akzeptiert auch falscher Username und Passwort??? Java Basics - Anfänger-Themen 1
N Passwort Anfrage vor Programm start Java Basics - Anfänger-Themen 1
K Methoden Passwort Bestätigungsfeld mit Password vergleichen Java Basics - Anfänger-Themen 7
A Passwort System Java Basics - Anfänger-Themen 4
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
E Wie Passwort-Eingabe (ohne Echo!) über Konsole ? Java Basics - Anfänger-Themen 4
J Passwort überprüfen Java Basics - Anfänger-Themen 3
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
C Encrypted (passwort) Rar Datei entpacken Java Basics - Anfänger-Themen 42
Detox Passwort verschleiern Java Basics - Anfänger-Themen 4
A Erste Schritte Passwort an "Internetseite" übergeben. Java Basics - Anfänger-Themen 2
B Passwort zurücksetzen Java Basics - Anfänger-Themen 1
T Passwort Generator Java Basics - Anfänger-Themen 2
B If Abfrage mit Passwort und Username Java Basics - Anfänger-Themen 2
fLooojava Passwort generieren - kleines Programm Java Basics - Anfänger-Themen 15
Z User/passwort eingabe...Help! Java Basics - Anfänger-Themen 4
M Passwort-Generator Java Basics - Anfänger-Themen 3
S Passwort Manager Java Basics - Anfänger-Themen 2
J Passwort Java Basics - Anfänger-Themen 4
A Passwort Schutz Java Basics - Anfänger-Themen 8
U Passwort auf JButton setzen. Java Basics - Anfänger-Themen 2
P Passwort Abfrage Java Basics - Anfänger-Themen 3
F Login Passwort-Vergleich Java Basics - Anfänger-Themen 12
c_sidi90 Passwort Generator Code Erweiterung Java Basics - Anfänger-Themen 12
K Methode Passwort generieren Java Basics - Anfänger-Themen 10
F OOP Textdatei zippen und mit Passwort sichern Java Basics - Anfänger-Themen 5
Benji0815 Java Passwort in Formular eingeben Java Basics - Anfänger-Themen 5
G Passwort verschluesselt speichern Java Basics - Anfänger-Themen 7
M Regular Expression - Passwort - aufeinanderfolgende Zeichen Java Basics - Anfänger-Themen 3
H Passwort einlesen funktioniert nicht wie gewünscht Java Basics - Anfänger-Themen 5
S Erster Versuch: Passwort erstellen Java Basics - Anfänger-Themen 3
S String Vergleich mit Passwort geht nur bei Zahlen ? Java Basics - Anfänger-Themen 7
S Vergleichen von verschlüsselten Passwort Java Basics - Anfänger-Themen 3
G Passwort vor unbefugtem Zugriff schützen Java Basics - Anfänger-Themen 7
P Passwort überprüfen mit regular Expression Java Basics - Anfänger-Themen 4
O Unsichtbares Passwort Java Basics - Anfänger-Themen 2
R Passwort Maskierung in der Konsole Java Basics - Anfänger-Themen 9
I Frame mit Passwort-Eingabe (Datenbank) Java Basics - Anfänger-Themen 6
V Passwort-String byteweise in eine Datei schreiben Java Basics - Anfänger-Themen 6
T Passwort nicht in URL übergeben Java Basics - Anfänger-Themen 5
B Benutzername und Passwort an Internetseite übergeben Java Basics - Anfänger-Themen 3
B Passwort generator Java Basics - Anfänger-Themen 7
H String verschlüsseln - eigener Algorithmus Java Basics - Anfänger-Themen 104
L Verschlüsseln mit bouncing castle Java Basics - Anfänger-Themen 1
I SHA512 verschlüsseln und dann wieder auslesen? Java Basics - Anfänger-Themen 35
T String simpel aber sicher verschlüsseln Java Basics - Anfänger-Themen 5
L Text verschlüsseln Java Basics - Anfänger-Themen 13
S Strings verschlüsseln und entschlüsseln?! Java Basics - Anfänger-Themen 6
H Erste Schritte Verschlüsseln Java Basics - Anfänger-Themen 13
O Java Dateien verschlüsseln? Java Basics - Anfänger-Themen 22
B String verschlüsseln - Applet - ohne BASE64 Java Basics - Anfänger-Themen 7
R Server-Daten sichern/verschlüsseln Java Basics - Anfänger-Themen 10
P Sensible Daten Speichern/Verschlüsseln von serialisiertem Objekt Java Basics - Anfänger-Themen 5
-horn- Java-Bytecode und Outputs verschlüsseln? Java Basics - Anfänger-Themen 3
E Verschlüsseln und FileWrite Java Basics - Anfänger-Themen 6
S String mit Hilfe von Array verschlüsseln Java Basics - Anfänger-Themen 19
F Algorithm zum Verschlüsseln und Entschlüsseln Java Basics - Anfänger-Themen 6
S Nummern verschlüsseln, prüfen ob vorhanden in Datenbank Java Basics - Anfänger-Themen 2
B Strings verschlüsseln Java Basics - Anfänger-Themen 6
H verschlüsseln von daten Java Basics - Anfänger-Themen 2
D daten verschlüsseln Java Basics - Anfänger-Themen 4
A MD5 verschlüsseln Java Basics - Anfänger-Themen 3
A DSA und Base64 Verschlüsseln und Entschlüsseln Java Basics - Anfänger-Themen 4
S "Verschlüsseln" anderer Dateien! Java Basics - Anfänger-Themen 19
L Datei verschlüsseln Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben