c++ - целостность - хеш сумма файла онлайн



Как получить контрольную сумму SHA-1/MD5 файла с Qt? (1)

Есть ли способ получить контрольную сумму / хэш MD5 или SHA-1 файла на диске в Qt?

Например, у меня есть путь к файлу, и мне может потребоваться проверить, соответствует ли содержимое этого файла определенному хеш-значению.


Откройте файл с QFile и вызовите readAll() чтобы вывести его содержимое в QByteArray . Затем используйте это для QCryptographicHash::hash(const QByteArray& data, Algorithm method) .

В Qt5 вы можете использовать addData() :

// Returns empty QByteArray() on failure.
QByteArray fileChecksum(const QString &fileName, 
                        QCryptographicHash::Algorithm hashAlgorithm)
{
    QFile f(fileName);
    if (f.open(QFile::ReadOnly)) {
        QCryptographicHash hash(hashAlgorithm);
        if (hash.addData(&f)) {
            return hash.result();
        }
    }
    return QByteArray();
}




checksum