CRC методом MD5 в Qt (30.11.2018). |
![]() |
2018 - Ноябрь | |||
30.11.2018 18:02 | |||
Создание CRC. Объект QFile создан и открыт, данные уже в него записаны. qFile.close(); //Важно! Необходимо закрыть и открыть снова!!! qFile.open(QIODevice::ReadWrite); QCryptographicHash hash(QCryptographicHash::Md5); //MD5 контрольной суммы. MD - с большой буквы везде пишут; Qt - опять выпендрилась. hash.addData(&qFile); qFile.write(hash.result()); //16 байт. qFile.close(); Чтение CRC. QCryptographicHash hash(QCryptographicHash::Md5); qFile.seek(qFile.size() - 16); qbaCRC = qFile.read(16); //Сама контрольная сумма. qFile.seek(0); qbaCRC_Data = qFile.read(qFile.size() - 16); hash.addData(qbaCRC_Data); qbaCRC_Data = hash.result(); if (qbaCRC_Data != qbaCRC) //Данные и их контрольная сумма. { iMessageBox("Ошибка CRC.","Выкиньте файл " + qFile.fileName() + " в мусорку!", 3); qFile.close(); return; } qFile.seek(0); //Можно считывать данные. |
|||
Обновлено ( 30.11.2018 18:13 ) |