File indexing completed on 2024-03-24 04:50:59
0001 /* AUDEX CDDA EXTRACTOR 0002 * SPDX-FileCopyrightText: Copyright (C) 2007 Marco Nelles 0003 * <https://userbase.kde.org/Audex> 0004 * 0005 * SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 #include "hashlist.h" 0009 0010 #include <QDebug> 0011 #include <QTime> 0012 0013 Hashlist::Hashlist() 0014 { 0015 } 0016 0017 const QStringList Hashlist::getSFV(const QStringList &filenames) 0018 { 0019 QStringList list; 0020 0021 CRC32Hash checksum; 0022 for (int i = 0; i < filenames.count(); ++i) { 0023 QFile file(filenames.at(i)); 0024 if (!file.exists()) 0025 continue; 0026 if (!file.open(QFile::ReadOnly)) 0027 continue; 0028 0029 while (!file.atEnd()) 0030 checksum.addData(file.read(HASHCALC_BUFSIZE)); 0031 0032 QFileInfo info(filenames.at(i)); 0033 list << info.fileName() + ' ' + QString("%1").arg(checksum.result(), 8, 16, QLatin1Char('g')).toUpper(); 0034 0035 checksum.clear(); 0036 0037 file.close(); 0038 } 0039 0040 return list; 0041 } 0042 0043 const QStringList Hashlist::getMD5(const QStringList &filenames) 0044 { 0045 QStringList list; 0046 0047 for (int i = 0; i < filenames.count(); ++i) { 0048 QFile file(filenames.at(i)); 0049 if (!file.exists()) 0050 continue; 0051 if (!file.open(QFile::ReadOnly)) 0052 continue; 0053 0054 QCryptographicHash md5sum(QCryptographicHash::Md5); 0055 0056 while (!file.atEnd()) 0057 md5sum.addData(file.read(HASHCALC_BUFSIZE)); 0058 0059 QFileInfo info(filenames.at(i)); 0060 list << QString("%1").arg(QString(md5sum.result().toHex().toUpper())) + " " + info.fileName(); 0061 0062 file.close(); 0063 } 0064 0065 return list; 0066 } 0067 0068 const QStringList Hashlist::getSHA256(const QStringList &filenames) 0069 { 0070 QStringList list; 0071 0072 for (int i = 0; i < filenames.count(); ++i) { 0073 QFile file(filenames.at(i)); 0074 if (!file.exists()) 0075 continue; 0076 if (!file.open(QFile::ReadOnly)) 0077 continue; 0078 0079 QCryptographicHash sha256sum(QCryptographicHash::Sha256); 0080 0081 while (!file.atEnd()) 0082 sha256sum.addData(file.read(HASHCALC_BUFSIZE)); 0083 0084 QFileInfo info(filenames.at(i)); 0085 list << QString("%1").arg(QString(sha256sum.result().toHex().toUpper())) + " " + info.fileName(); 0086 0087 file.close(); 0088 } 0089 0090 return list; 0091 }