WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 15.04.2003, 19:45   #1
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Frage Java, MD5 and so on...

Hi, ich hab da ein kleines Problem: Die Kurzfassung: Ich muss ein Passwort verschlüsselt abspeichern und natürlich später wieder verifizieren können. Das ganze geschieht mit MD5 und ich habe es wie folgt gelöst:

Code:
String s = txtInput.getText();
    try {
              MessageDigest md = MessageDigest.getInstance("MD5");
              md.update(s.getBytes());
              byte[] sbe = md.digest();

              pw = sbe;     //globale Variable


              monitor.append(Integer.toString(sbe.hashCode())+"\n");
       
        //Verschl. PW in ein Textfeld schreiben
              txtEncrypted.setText(sbe.toString());
        }
        catch (NoSuchAlgorithmException ex) {}
Das erzeugt mal aus dem String s einen MD5-verschlüsselten byte[] Wert.

Das Überprüfen funktioniert prinzipiell auch, wenn ich byte[] pw hernehme und das "neue" damit zu überprüfende Passwort auch ein byte[] ist (b2 is das zu überprüfende Passwort):

Code:
try {
              MessageDigest md = MessageDigest.getInstance("MD5");
              md.update(txtCompare.getText().getBytes());
              byte[] b2 = md.digest();

              if(md.isEqual(pw,b2)) {
                monitor.append("Bingo!\n");
              }
              else {
                monitor.append("Leider nein...\n");
              }

        }
        catch (NoSuchAlgorithmException ex) {}
Soweit so gut. Mein Problem nun, dass ich byte[] pw gerne abspeichern würde und zwar als String. Allerdings funktioniert das nicht so wie ich möchte, denn wenn ich sage:

String string = pw.toString();
und
byte[] b = pw.getBytes();

funktioniert der Vergleich "if(md.isEqual(b,b2))" plötzlich nicht mehr.

Ich hoffe, meine Schilderung ist nachvollziehbar?!
Falls mir wer helfen kann, wäre das wirklich supertoll!

Danke schon mal und
liebe Grüße,

bs
blauesau ist offline   Mit Zitat antworten
Alt 16.04.2003, 12:34   #2
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Standard

Ich habe jetzt mal folgendes probiert:
Code:
String st;
for(int i=0; i<pw.length(); i++) {
   st+= Byte.toString(pw[i]);
}
Da entsteht dann wieder ein ganz anderer String, der schon wesentlich mehr nach MD5 aussieht...

Nur wie, nur wie bekomm ich den wieder in ein byte[]...



blauesau ist offline   Mit Zitat antworten
Alt 16.04.2003, 19:03   #3
gerngroh
Jr. Member
 
Registriert seit: 22.12.2001
Alter: 43
Beiträge: 65


Standard

bytes[] b = st.getBytes();
gerngroh ist offline   Mit Zitat antworten
Alt 16.04.2003, 19:25   #4
blauesau
Hero
 
Registriert seit: 08.04.2003
Beiträge: 821


Standard

Wie bereits erwähnt funktioniert das leider nicht...
Bzw. ich glaube, dass der Fehler bei der to-String-Umwandlung liegt.
blauesau ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:35 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag