Qt でディスク上のファイルの MD5 または SHA-1 チェックサム/ハッシュを取得する方法はありますか?
たとえば、ファイル パスがあり、そのファイルの内容が特定のハッシュ値と一致することを確認する必要があるとします。
でファイルを開き、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();
}