Seite 1 von 1

Hash mit QCryptographicHash

Verfasst: 1. November 2009 22:44
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

Verfasst: 1. November 2009 22:49
von upsala
Interessante Wortwahl...

Erwartest du vielleicht eine Hexadezimale-Repräsentation deines ByteArrays?

Verfasst: 1. November 2009 23:12
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ß

Verfasst: 1. November 2009 23:35
von Christian81
Upsala hat schon alles gesagt - Doku lesen solltest du allein können... :roll:

Verfasst: 1. November 2009 23:53
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.