File indexing completed on 2024-04-28 16:06:18

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 }