Hash mit QCryptographicHash

Alles rund um die Programmierung mit Qt
Antworten
Tuxing
Beiträge: 52
Registriert: 28. Oktober 2009 11:13

Hash mit QCryptographicHash

Beitrag von Tuxing »

Hallo Leute,
ich muss leider direkt noch ein Frage hinterher schieben. Ich möchte den Hash-Wert eines QString erzeugen, um Passwörter einer Joomla Datenbank abzugleichen. Diese sind mit MD5 "verschlüsselt" in der Datenbank gespeichert . Wenn ein User sich bei meinem Programm anmeldet, soll sein geschriebenes Passwort auch so "verschlüsselt" werden, um dieses dann mit dem in der Datenbank zu vergleichen.

Mein Ansatz für die Hash-generierung:

Code: Alles auswählen

int Database::generateMD5(QString x)
{
    QCryptographicHash *crypt = new QCryptographicHash
    (QCryptographicHash::Md5);
	
    QByteArray string = x.toStdString().c_str();
	
    crypt->addData(string);

    QString test( crypt->result() );
	
    cout << "ausgabe:  " << test.toStdString() << endl;


    return 0;
}
Allerdings ist die Ausgabe die ich von dem Hashwert machen lasse der totale Scheiß. Das sind bei der Ausgabe noch nicht mal Buchstaben oder Zeichen sondern irgendwelche Hieroglyphen. Hat jemand eine Idee woran das liegt ?

Mache ich vll etwas mit dem ByteArray falsch ??

Danke für Hilfe
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Interessante Wortwahl...

Erwartest du vielleicht eine Hexadezimale-Repräsentation deines ByteArrays?
Tuxing
Beiträge: 52
Registriert: 28. Oktober 2009 11:13

Beitrag von Tuxing »

hey,
nein ich erwarte eine ausgabe wie zb die die man bekommt wenn man auf der Seite: http://files.kniebes.net/php/md5/ das Wort: Hallo123 umrechnet.

Ausgabe dabei: c10fedc1a97741855818849f936d2463

Eine solche ausgabe erwarte ich von der Qt Funktion

Gruß
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Upsala hat schon alles gesagt - Doku lesen solltest du allein können... :roll:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Tuxing
Beiträge: 52
Registriert: 28. Oktober 2009 11:13

Beitrag von Tuxing »

ah .. okay. Hatte den Hinweis von upsala nicht auf anhieb verstanden. Es hat jetzt funktioniert. Die MD5 Darstellung ist ja Hexadezimal. Das hatte ich übersehen.

Ich hab nun die Zeile:

Code: Alles auswählen

QString test( crypt->result() );
in ...

Code: Alles auswählen

QString test( crypt->result().toHex() );
abgeändert und alles funktioniert wunderbar.

Danke.
Antworten