1
0

fix: open target file once

This commit is contained in:
Saturneric 2023-02-11 20:18:26 +08:00
parent b79ae9d7c3
commit 8a0cbb77bb

View File

@ -84,30 +84,30 @@ std::string GpgFrontend::FileOperator::CalculateHash(
<< file_path.filename().u8string().c_str() << std::endl;
QFile f(info.filePath());
f.open(QFile::ReadOnly);
auto buffer = f.readAll();
ss << " " << _("file size(bytes)") << _(": ") << buffer.size()
<< std::endl;
f.close();
if (f.open(QFile::ReadOnly)) {
auto hash_md5 = QCryptographicHash(QCryptographicHash::Md5);
// read all data
auto buffer = f.readAll();
ss << " " << _("file size(bytes)") << _(": ") << buffer.size()
<< std::endl;
// md5
auto hash_md5 = QCryptographicHash(QCryptographicHash::Md5);
hash_md5.addData(buffer);
auto md5 = hash_md5.result().toHex().toStdString();
SPDLOG_INFO("md5 {}", md5);
ss << " "
<< "md5" << _(": ") << md5 << std::endl;
auto hash_sha1 = QCryptographicHash(QCryptographicHash::Sha1);
// sha1
auto hash_sha1 = QCryptographicHash(QCryptographicHash::Sha1);
hash_sha1.addData(buffer);
auto sha1 = hash_sha1.result().toHex().toStdString();
SPDLOG_INFO("sha1 {}", sha1);
ss << " "
<< "sha1" << _(": ") << sha1 << std::endl;
auto hash_sha256 = QCryptographicHash(QCryptographicHash::Sha256);
// sha1
auto hash_sha256 = QCryptographicHash(QCryptographicHash::Sha256);
hash_sha256.addData(buffer);
auto sha256 = hash_sha256.result().toHex().toStdString();
SPDLOG_INFO("sha256 {}", sha256);