Seite 1 von 1

Frage zu QCryptographicHash

Verfasst: 10. Juli 2008 13:56
von Qt-nator
Hi,

kann man mit QCryptographicHash auch String's umwandeln? Und wie genau funktioniert das denn?

Also der Aufruf der Funktion. Das versteh ich noch nicht so ganz.

Gruß

Qt-nator

Verfasst: 10. Juli 2008 14:36
von Sephral
Hallo,

wie der Name schon sagt, kann die Klasse nur Hashes / Prüfsummen erzeugen (Md4, Md5, Sha1). Verschlüsseln kannst du damit nicht.

Ciao,
Sephral

Verfasst: 10. Juli 2008 14:42
von Qt-nator
Wollte ich ja auch nicht. Nur weis ich nicht wie ich umwandeln kann. Könnte mir jemand ein Beispiel geben wie ich einen String in md5 Hash umwandeln kann?

Blick da nicht so ganz durch.

Verfasst: 10. Juli 2008 14:45
von Volker

Code: Alles auswählen

// calculate checksum
QCryptographicHash hashMaker(QCryptographicHash::Md5);
hashMaker.addData(file.readAll());
QByteArray checksum = hashMaker.result();	
zum Beispiel

Verfasst: 10. Juli 2008 14:49
von Qt-nator
Das doch schon mal gut. Danke. Nur was hat es bei dem addData mit der 2ten Möglichkeit aussich.

void QCryptographicHash::addData ( const char * data, int length );

Verfasst: 10. Juli 2008 16:01
von Volker
Na ja, da werden die Daten eben aus dem Puffer gelesen den Du übergibst. Und zwar genau so viele Bytes wie Du mit length angibst. Steht doch genau so in der Doku.

Stets dieselbe Prüfsumme...

Verfasst: 22. Dezember 2008 17:17
von gentlesea
Hallo,

ich habe zu dieser Problematik auch noch eine Frage. Folgender Code:

Code: Alles auswählen

	QString QStringMD5CheckSumOfDir300RedBoot("not determined yet");
	QFile QFileDir300RedBoot("dir300redboot.zip");
	QFileDir300RedBoot.open(QIODevice::ReadOnly);
	QCryptographicHash QCryptographicHashMakerForFileDir300RedBoot(QCryptographicHash::Md5);
	QCryptographicHashMakerForFileDir300RedBoot.addData(QFileDir300RedBoot.readAll(), QFileDir300RedBoot.size());
	QByteArray QByteArrayChecksumChecksumOfFileDir300RedBoot = QCryptographicHashMakerForFileDir300RedBoot.result();
Damit will ich den MD5-Hash der Datei bestimmen. Es geht nur darum, zu überprüfen, ob die vernünftig heruntergeladen wurde, dazu reicht mir MD5. Leider produziert der Code immer dieselbe Prüfsumme, egal mit welcher Datei ich in füttere. Warum?

Code: Alles auswählen

QByteArrayChecksumChecksumOfFileDir300RedBoot.toHex()
Bin dankbar für Anregungen.

Verfasst: 22. Dezember 2008 18:49
von solarix
ich würde sagen: er kann die Datei nicht öffnen (z.B. weil sie an einem anderen Ort liegt...), denn abgesehen von extrem ungünstigen Variabelnnamen, sieht der Code ok aus...