У меня есть код, который генерирует md5 для строк. Теперь я хочу добавить поколение md5 для файлов. Работает с txt-файлами (xml, html, txt и т. Д.), Но когда я пытаюсь сделать это с двоичным файлом (zip, bin, apk и т. Д.), Я вижу неправильный результат. Как я могу правильно прочитать файл bin в (char *), чтобы генерировать допустимый хеш?Как сгенерировать md5 файла в Qt?
Я пытался использовать TextStream, но результат не является действительным
QFile file(fileName);
file.open(QIODevice::ReadOnly);
QTextStream in(&file);
QString t = in.readAll();
file.close();
string res = md5(t.toStdString());
Также я пытался использовать QByteArray и после этого новообращенного ByteArray, чтобы обугливается * Но это не правильно работать тоже. Как я могу это исправить?
* Никогда не используйте 'QString' и' QTextStream' для двоичных данных *. Они предназначены для текста Unicode, декодированного из байтов в хорошо известной кодировке. Попытка использовать их для двоичных данных будет с удовольствием и без задержек. –
Хорошо, но что я могу использовать для этого? – Pein
Возможно, вы захотите рассмотреть QCrytographicHash. Qt имеет встроенную генерацию md5. http://doc.qt.io/qt-5/qcryptographichash.html – drescherjm