Loading forms/mainwindow.ui +44 −41 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ <x>20</x> <y>30</y> <width>260</width> <height>91</height> <height>103</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_2"> Loading @@ -108,16 +108,6 @@ </property> </widget> </item> <item row="1" column="1"> <widget class="QLineEdit" name="ThreadlineEdit"/> </item> <item row="1" column="0"> <widget class="QCheckBox" name="threadsCheckBox"> <property name="text"> <string>Number of threads</string> </property> </widget> </item> <item row="2" column="0"> <widget class="QCheckBox" name="regexCheckBox"> <property name="text"> Loading @@ -135,6 +125,23 @@ </property> </widget> </item> <item row="1" column="1"> <widget class="QSpinBox" name="threadNumberSpin"> <property name="minimum"> <number>1</number> </property> </widget> </item> <item row="1" column="0"> <widget class="QLabel" name="label"> <property name="layoutDirection"> <enum>Qt::LeftToRight</enum> </property> <property name="text"> <string>Number of threads</string> </property> </widget> </item> </layout> </widget> </widget> Loading Loading @@ -182,45 +189,41 @@ </property> </widget> </item> <item row="0" column="1"> <widget class="QLineEdit" name="lengthLineEdit"> <item row="0" column="0"> <widget class="QLabel" name="lengthLabel"> <property name="text"> <string>8</string> <string>Min Length</string> </property> </widget> </item> <item row="1" column="1"> <widget class="QLineEdit" name="specialLineEdit"> <property name="text"> <string>0</string> <item row="0" column="1"> <widget class="QSpinBox" name="MinLenSpin"> <property name="value"> <number>8</number> </property> </widget> </item> <item row="1" column="1"> <widget class="QSpinBox" name="MinOccSpecialSpin"/> </item> <item row="2" column="1"> <widget class="QLineEdit" name="digitLineEdit"> <property name="text"> <string>1</string> <widget class="QSpinBox" name="MinOccDigitsSpin"> <property name="value"> <number>1</number> </property> </widget> </item> <item row="3" column="1"> <widget class="QLineEdit" name="upperLineEdit"> <property name="text"> <string>1</string> <widget class="QSpinBox" name="MinOccUpperSpin"> <property name="value"> <number>1</number> </property> </widget> </item> <item row="4" column="1"> <widget class="QLineEdit" name="lowerLineEdit"> <property name="text"> <string>1</string> </property> </widget> </item> <item row="0" column="0"> <widget class="QLabel" name="lengthLabel"> <property name="text"> <string>Min Length</string> <widget class="QSpinBox" name="MinOccLowerSpin"> <property name="value"> <number>1</number> </property> </widget> </item> Loading @@ -239,7 +242,7 @@ <x>20</x> <y>20</y> <width>301</width> <height>101</height> <height>107</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_4"> Loading @@ -257,9 +260,6 @@ </property> </widget> </item> <item row="1" column="1"> <widget class="QLineEdit" name="AdvancedlineEdit"/> </item> <item row="0" column="0"> <widget class="QCheckBox" name="maxSimpleCheckBox"> <property name="text"> Loading @@ -268,10 +268,13 @@ </widget> </item> <item row="0" column="1"> <widget class="QLineEdit" name="SimplelineEdit"/> <widget class="QSpinBox" name="MaxSimpleMaxSpin"/> </item> <item row="1" column="1"> <widget class="QSpinBox" name="MaxAdvMaskSpin"/> </item> <item row="2" column="1"> <widget class="QLineEdit" name="topLineEdit"/> <widget class="QSpinBox" name="TopXAnswerSpin"/> </item> </layout> </widget> Loading Loading @@ -376,7 +379,7 @@ <x>0</x> <y>0</y> <width>1350</width> <height>22</height> <height>20</height> </rect> </property> </widget> Loading include/mainwindow.h +6 −8 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ class MainWindow : public QMainWindow public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void setFilename(const std::string& filename); Loading @@ -45,12 +46,12 @@ public slots: private: Ui::MainWindow *ui; Statsgen * stats; Statsgen stats; QMessageBox waitBox; QVBoxLayout * layoutCharset; QVBoxLayout * layoutLength; int firstTime=1; void initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity, double & total, double & filter); void initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity); }; Loading @@ -60,18 +61,15 @@ class WorkerThread : public QThread Q_OBJECT void run() { _s->generate_stats(); _s.generate_stats(); emit resultReady(); } public: WorkerThread(Statsgen *s) { _s=s; } WorkerThread(Statsgen &s):_s(s){} signals: void resultReady(); private: Statsgen *_s; Statsgen &_s; }; #endif // MAINWINDOW_H include/statsgen.h +1 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ struct thread_data { */ class Statsgen { public: Statsgen(){} Statsgen(const std::string& name); /** Loading src/gui/maingui.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); MainWindow w; w.show(); // set file if given on cmd line if(argc >= 2){ w.setFilename(argv[1]); } return a.exec(); } src/gui/mainwindow.cpp +58 −63 Original line number Diff line number Diff line Loading @@ -32,6 +32,10 @@ MainWindow::MainWindow(QWidget *parent) : connect(ui->classicButton,SIGNAL(clicked()),this,SLOT(disableWithCount())); } void MainWindow::setFilename(const string& filename){ ui->fileLine->setText(QString::fromStdString(filename)); } MainWindow::~MainWindow() { Loading @@ -50,48 +54,44 @@ void MainWindow::findFile() { void MainWindow::startGame() { stats = new Statsgen((ui->fileLine->text()).toUtf8().constData()); stats = Statsgen((ui->fileLine->text()).toUtf8().constData()); if(ui->withcountButton->isChecked()) { stats->setWithcount(true); stats.setWithcount(true); } if(ui->threadsCheckBox->isChecked()) { try { stats->setNbThread(stoi(ui->ThreadlineEdit->text().toStdString())); stats.setNbThread(stoi(ui->threadNumberSpin->text().toStdString())); } catch(invalid_argument) { stats->setNbThread(1); stats.setNbThread(1); } catch(out_of_range) { stats->setNbThread(1); } stats.setNbThread(1); } if(ui->regexCheckBox->isChecked()) { stats->setRegex(ui->RegexlineEdit->text().toStdString()); stats.setRegex(ui->RegexlineEdit->text().toStdString()); } if(ui->maxSimpleCheckBox->isChecked()) { try { stats->setLimitSimplemask(stoi(ui->SimplelineEdit->text().toStdString())); stats.setLimitSimplemask(stoi(ui->MaxSimpleMaxSpin->text().toStdString())); } catch(invalid_argument) { stats->setLimitSimplemask(100); stats.setLimitSimplemask(100); } catch(out_of_range) { stats->setLimitSimplemask(100); stats.setLimitSimplemask(100); } } Loading @@ -100,15 +100,15 @@ void MainWindow::startGame() { { try { stats->setLimitAdvancedmask(stoi(ui->AdvancedlineEdit->text().toStdString())); stats.setLimitAdvancedmask(stoi(ui->MaxAdvMaskSpin->text().toStdString())); } catch(invalid_argument) { stats->setLimitAdvancedmask(100); stats.setLimitAdvancedmask(100); } catch(out_of_range) { stats->setLimitAdvancedmask(100); stats.setLimitAdvancedmask(100); } } Loading @@ -117,59 +117,55 @@ void MainWindow::startGame() { { try { stats->setTop(stoi(ui->topLineEdit->text().toStdString())); stats.setTop(stoi(ui->TopXAnswerSpin->text().toStdString())); } catch(invalid_argument) { stats->setTop(10); stats.setTop(10); } catch(out_of_range) { stats->setTop(10); stats.setTop(10); } } try { int length=stoi(ui->lengthLineEdit->text().toStdString()); int special=stoi(ui->specialLineEdit->text().toStdString()); int digit=stoi(ui->digitLineEdit->text().toStdString()); int upper=stoi(ui->upperLineEdit->text().toStdString()); int lower=stoi(ui->lowerLineEdit->text().toStdString()); int length=stoi(ui->MinLenSpin->text().toStdString()); int special=stoi(ui->MinOccSpecialSpin->text().toStdString()); int digit=stoi(ui->MinOccDigitsSpin->text().toStdString()); int upper=stoi(ui->MinOccUpperSpin->text().toStdString()); int lower=stoi(ui->MinOccLowerSpin->text().toStdString()); stats->setSecurityRules(length,special,digit,upper,lower); stats.setSecurityRules(length,special,digit,upper,lower); } catch(invalid_argument) { stats->setSecurityRules(8,0,1,1,1); stats.setSecurityRules(8,0,1,1,1); } catch(out_of_range) { stats->setSecurityRules(8,0,1,1,1); stats.setSecurityRules(8,0,1,1,1); } ui->ThreadlineEdit->setDisabled(true); ui->topLineEdit->setDisabled(true); ui->SimplelineEdit->setDisabled(true); ui->AdvancedlineEdit->setDisabled(true); ui->threadNumberSpin->setDisabled(true); ui->TopXAnswerSpin->setDisabled(true); ui->MaxSimpleMaxSpin->setDisabled(true); ui->MaxAdvMaskSpin->setDisabled(true); ui->RegexlineEdit->setDisabled(true); ui->lengthLineEdit->setDisabled(true); ui->lowerLineEdit->setDisabled(true); ui->upperLineEdit->setDisabled(true); ui->specialLineEdit->setDisabled(true); ui->digitLineEdit->setDisabled(true); ui->MinLenSpin->setDisabled(true); ui->MinOccLowerSpin->setDisabled(true); ui->MinOccUpperSpin->setDisabled(true); ui->MinOccSpecialSpin->setDisabled(true); ui->MinOccDigitsSpin->setDisabled(true); ui->startButton->setDisabled(true); ui->threadsCheckBox->setDisabled(true); ui->topCheckBox->setDisabled(true); ui->regexCheckBox->setDisabled(true); ui->maxAdvancedCheckBox->setDisabled(true); ui->maxSimpleCheckBox->setDisabled(true); // delete layoutCharset; delete layoutLength; WorkerThread *workerThread = new WorkerThread(stats); connect(workerThread, SIGNAL(resultReady()), this, SLOT(handleResults())); connect(workerThread, SIGNAL(finished()), workerThread, SLOT(deleteLater())); Loading @@ -190,14 +186,14 @@ void MainWindow::disableWithCount() ui->withcountButton->setChecked(false); } void MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity, double & total, double & filter) { total = stats->getTotalCounter(); filter = stats->getTotalFilter(); void MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity) { double total = stats.getTotalCounter(); double filter = stats.getTotalFilter(); percentageTotal = (double) 100 * (filter / total); percentageSecurity = (double) 100 * (stats->getNbSecurePasswords() / total); percentageSecurity = (double) 100 * (stats.getNbSecurePasswords() / total); /* LENGTH HISTOGRAM */ multimap<uint64_t, int> reverseL = flip_map<int>(stats->getStatsLength()); multimap<uint64_t, int> reverseL = flip_map<int>(stats.getStatsLength()); double percentageL; uint64_t nbHideL = 0; Loading @@ -221,7 +217,7 @@ void MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieChar /* CHARSET PIECHART */ multimap<uint64_t, string> reverseC = flip_map<string>(stats->getStatsCharsets()); multimap<uint64_t, string> reverseC = flip_map<string>(stats.getStatsCharsets()); int top = 0; uint64_t nbHideC = 0; Loading @@ -244,18 +240,17 @@ void MainWindow::handleResults() waitBox.close(); ui->charsetWidget->setHidden(false); ui->lengthWidget->show(); ui->ThreadlineEdit->setDisabled(false); ui->topLineEdit->setDisabled(false); ui->SimplelineEdit->setDisabled(false); ui->AdvancedlineEdit->setDisabled(false); ui->threadNumberSpin->setDisabled(false); ui->TopXAnswerSpin->setDisabled(false); ui->MaxSimpleMaxSpin->setDisabled(false); ui->MaxAdvMaskSpin->setDisabled(false); ui->RegexlineEdit->setDisabled(false); ui->lengthLineEdit->setDisabled(false); ui->lowerLineEdit->setDisabled(false); ui->upperLineEdit->setDisabled(false); ui->specialLineEdit->setDisabled(false); ui->digitLineEdit->setDisabled(false); ui->MinLenSpin->setDisabled(false); ui->MinOccLowerSpin->setDisabled(false); ui->MinOccUpperSpin->setDisabled(false); ui->MinOccSpecialSpin->setDisabled(false); ui->MinOccDigitsSpin->setDisabled(false); ui->startButton->setDisabled(false); ui->threadsCheckBox->setDisabled(false); ui->topCheckBox->setDisabled(false); ui->regexCheckBox->setDisabled(false); ui->maxAdvancedCheckBox->setDisabled(false); Loading @@ -264,9 +259,9 @@ void MainWindow::handleResults() QBarSeries * barLength = new QBarSeries(); QPieSeries * pieCharset = new QPieSeries(); double percentageTotal, percentageSecurity, total_counter, total_filter; double percentageTotal, percentageSecurity; initGraphicalStats(barLength, pieCharset, percentageTotal, percentageSecurity, total_counter, total_filter); initGraphicalStats(barLength, pieCharset, percentageTotal, percentageSecurity); Loading Loading @@ -308,16 +303,16 @@ void MainWindow::handleResults() /* LABELS */ ui->AnalyzedLabel->setText("Number of analyzed passwords: " + QString::number(total_filter) + QString::number(stats.getTotalFilter(), 'g', 2) + " on a total of " + QString::number(total_counter) + " passwords (" + QString::number(percentageTotal, 'f', 2) + "%)"); + QString::number(stats.getTotalFilter(), 'g', 2) + " passwords (" + QString::number(percentageTotal, 'g', 1) + "%)"); ui->securityLabel->setText("--> " + QString::number(percentageSecurity, 'f', 2) ui->securityLabel->setText("--> " + QString::number(percentageSecurity, 'g', 2) + "% of the passwords respects the security rules"); stats->print_stats(); stats.print_stats(); ui->resultLabel->setText("For more detailed statistics, check the file \"result.txt\""); } No newline at end of file Loading
forms/mainwindow.ui +44 −41 Original line number Diff line number Diff line Loading @@ -94,7 +94,7 @@ <x>20</x> <y>30</y> <width>260</width> <height>91</height> <height>103</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_2"> Loading @@ -108,16 +108,6 @@ </property> </widget> </item> <item row="1" column="1"> <widget class="QLineEdit" name="ThreadlineEdit"/> </item> <item row="1" column="0"> <widget class="QCheckBox" name="threadsCheckBox"> <property name="text"> <string>Number of threads</string> </property> </widget> </item> <item row="2" column="0"> <widget class="QCheckBox" name="regexCheckBox"> <property name="text"> Loading @@ -135,6 +125,23 @@ </property> </widget> </item> <item row="1" column="1"> <widget class="QSpinBox" name="threadNumberSpin"> <property name="minimum"> <number>1</number> </property> </widget> </item> <item row="1" column="0"> <widget class="QLabel" name="label"> <property name="layoutDirection"> <enum>Qt::LeftToRight</enum> </property> <property name="text"> <string>Number of threads</string> </property> </widget> </item> </layout> </widget> </widget> Loading Loading @@ -182,45 +189,41 @@ </property> </widget> </item> <item row="0" column="1"> <widget class="QLineEdit" name="lengthLineEdit"> <item row="0" column="0"> <widget class="QLabel" name="lengthLabel"> <property name="text"> <string>8</string> <string>Min Length</string> </property> </widget> </item> <item row="1" column="1"> <widget class="QLineEdit" name="specialLineEdit"> <property name="text"> <string>0</string> <item row="0" column="1"> <widget class="QSpinBox" name="MinLenSpin"> <property name="value"> <number>8</number> </property> </widget> </item> <item row="1" column="1"> <widget class="QSpinBox" name="MinOccSpecialSpin"/> </item> <item row="2" column="1"> <widget class="QLineEdit" name="digitLineEdit"> <property name="text"> <string>1</string> <widget class="QSpinBox" name="MinOccDigitsSpin"> <property name="value"> <number>1</number> </property> </widget> </item> <item row="3" column="1"> <widget class="QLineEdit" name="upperLineEdit"> <property name="text"> <string>1</string> <widget class="QSpinBox" name="MinOccUpperSpin"> <property name="value"> <number>1</number> </property> </widget> </item> <item row="4" column="1"> <widget class="QLineEdit" name="lowerLineEdit"> <property name="text"> <string>1</string> </property> </widget> </item> <item row="0" column="0"> <widget class="QLabel" name="lengthLabel"> <property name="text"> <string>Min Length</string> <widget class="QSpinBox" name="MinOccLowerSpin"> <property name="value"> <number>1</number> </property> </widget> </item> Loading @@ -239,7 +242,7 @@ <x>20</x> <y>20</y> <width>301</width> <height>101</height> <height>107</height> </rect> </property> <layout class="QGridLayout" name="gridLayout_4"> Loading @@ -257,9 +260,6 @@ </property> </widget> </item> <item row="1" column="1"> <widget class="QLineEdit" name="AdvancedlineEdit"/> </item> <item row="0" column="0"> <widget class="QCheckBox" name="maxSimpleCheckBox"> <property name="text"> Loading @@ -268,10 +268,13 @@ </widget> </item> <item row="0" column="1"> <widget class="QLineEdit" name="SimplelineEdit"/> <widget class="QSpinBox" name="MaxSimpleMaxSpin"/> </item> <item row="1" column="1"> <widget class="QSpinBox" name="MaxAdvMaskSpin"/> </item> <item row="2" column="1"> <widget class="QLineEdit" name="topLineEdit"/> <widget class="QSpinBox" name="TopXAnswerSpin"/> </item> </layout> </widget> Loading Loading @@ -376,7 +379,7 @@ <x>0</x> <y>0</y> <width>1350</width> <height>22</height> <height>20</height> </rect> </property> </widget> Loading
include/mainwindow.h +6 −8 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ class MainWindow : public QMainWindow public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); void setFilename(const std::string& filename); Loading @@ -45,12 +46,12 @@ public slots: private: Ui::MainWindow *ui; Statsgen * stats; Statsgen stats; QMessageBox waitBox; QVBoxLayout * layoutCharset; QVBoxLayout * layoutLength; int firstTime=1; void initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity, double & total, double & filter); void initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity); }; Loading @@ -60,18 +61,15 @@ class WorkerThread : public QThread Q_OBJECT void run() { _s->generate_stats(); _s.generate_stats(); emit resultReady(); } public: WorkerThread(Statsgen *s) { _s=s; } WorkerThread(Statsgen &s):_s(s){} signals: void resultReady(); private: Statsgen *_s; Statsgen &_s; }; #endif // MAINWINDOW_H
include/statsgen.h +1 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ struct thread_data { */ class Statsgen { public: Statsgen(){} Statsgen(const std::string& name); /** Loading
src/gui/maingui.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,9 @@ int main(int argc, char *argv[]) QApplication a(argc, argv); MainWindow w; w.show(); // set file if given on cmd line if(argc >= 2){ w.setFilename(argv[1]); } return a.exec(); }
src/gui/mainwindow.cpp +58 −63 Original line number Diff line number Diff line Loading @@ -32,6 +32,10 @@ MainWindow::MainWindow(QWidget *parent) : connect(ui->classicButton,SIGNAL(clicked()),this,SLOT(disableWithCount())); } void MainWindow::setFilename(const string& filename){ ui->fileLine->setText(QString::fromStdString(filename)); } MainWindow::~MainWindow() { Loading @@ -50,48 +54,44 @@ void MainWindow::findFile() { void MainWindow::startGame() { stats = new Statsgen((ui->fileLine->text()).toUtf8().constData()); stats = Statsgen((ui->fileLine->text()).toUtf8().constData()); if(ui->withcountButton->isChecked()) { stats->setWithcount(true); stats.setWithcount(true); } if(ui->threadsCheckBox->isChecked()) { try { stats->setNbThread(stoi(ui->ThreadlineEdit->text().toStdString())); stats.setNbThread(stoi(ui->threadNumberSpin->text().toStdString())); } catch(invalid_argument) { stats->setNbThread(1); stats.setNbThread(1); } catch(out_of_range) { stats->setNbThread(1); } stats.setNbThread(1); } if(ui->regexCheckBox->isChecked()) { stats->setRegex(ui->RegexlineEdit->text().toStdString()); stats.setRegex(ui->RegexlineEdit->text().toStdString()); } if(ui->maxSimpleCheckBox->isChecked()) { try { stats->setLimitSimplemask(stoi(ui->SimplelineEdit->text().toStdString())); stats.setLimitSimplemask(stoi(ui->MaxSimpleMaxSpin->text().toStdString())); } catch(invalid_argument) { stats->setLimitSimplemask(100); stats.setLimitSimplemask(100); } catch(out_of_range) { stats->setLimitSimplemask(100); stats.setLimitSimplemask(100); } } Loading @@ -100,15 +100,15 @@ void MainWindow::startGame() { { try { stats->setLimitAdvancedmask(stoi(ui->AdvancedlineEdit->text().toStdString())); stats.setLimitAdvancedmask(stoi(ui->MaxAdvMaskSpin->text().toStdString())); } catch(invalid_argument) { stats->setLimitAdvancedmask(100); stats.setLimitAdvancedmask(100); } catch(out_of_range) { stats->setLimitAdvancedmask(100); stats.setLimitAdvancedmask(100); } } Loading @@ -117,59 +117,55 @@ void MainWindow::startGame() { { try { stats->setTop(stoi(ui->topLineEdit->text().toStdString())); stats.setTop(stoi(ui->TopXAnswerSpin->text().toStdString())); } catch(invalid_argument) { stats->setTop(10); stats.setTop(10); } catch(out_of_range) { stats->setTop(10); stats.setTop(10); } } try { int length=stoi(ui->lengthLineEdit->text().toStdString()); int special=stoi(ui->specialLineEdit->text().toStdString()); int digit=stoi(ui->digitLineEdit->text().toStdString()); int upper=stoi(ui->upperLineEdit->text().toStdString()); int lower=stoi(ui->lowerLineEdit->text().toStdString()); int length=stoi(ui->MinLenSpin->text().toStdString()); int special=stoi(ui->MinOccSpecialSpin->text().toStdString()); int digit=stoi(ui->MinOccDigitsSpin->text().toStdString()); int upper=stoi(ui->MinOccUpperSpin->text().toStdString()); int lower=stoi(ui->MinOccLowerSpin->text().toStdString()); stats->setSecurityRules(length,special,digit,upper,lower); stats.setSecurityRules(length,special,digit,upper,lower); } catch(invalid_argument) { stats->setSecurityRules(8,0,1,1,1); stats.setSecurityRules(8,0,1,1,1); } catch(out_of_range) { stats->setSecurityRules(8,0,1,1,1); stats.setSecurityRules(8,0,1,1,1); } ui->ThreadlineEdit->setDisabled(true); ui->topLineEdit->setDisabled(true); ui->SimplelineEdit->setDisabled(true); ui->AdvancedlineEdit->setDisabled(true); ui->threadNumberSpin->setDisabled(true); ui->TopXAnswerSpin->setDisabled(true); ui->MaxSimpleMaxSpin->setDisabled(true); ui->MaxAdvMaskSpin->setDisabled(true); ui->RegexlineEdit->setDisabled(true); ui->lengthLineEdit->setDisabled(true); ui->lowerLineEdit->setDisabled(true); ui->upperLineEdit->setDisabled(true); ui->specialLineEdit->setDisabled(true); ui->digitLineEdit->setDisabled(true); ui->MinLenSpin->setDisabled(true); ui->MinOccLowerSpin->setDisabled(true); ui->MinOccUpperSpin->setDisabled(true); ui->MinOccSpecialSpin->setDisabled(true); ui->MinOccDigitsSpin->setDisabled(true); ui->startButton->setDisabled(true); ui->threadsCheckBox->setDisabled(true); ui->topCheckBox->setDisabled(true); ui->regexCheckBox->setDisabled(true); ui->maxAdvancedCheckBox->setDisabled(true); ui->maxSimpleCheckBox->setDisabled(true); // delete layoutCharset; delete layoutLength; WorkerThread *workerThread = new WorkerThread(stats); connect(workerThread, SIGNAL(resultReady()), this, SLOT(handleResults())); connect(workerThread, SIGNAL(finished()), workerThread, SLOT(deleteLater())); Loading @@ -190,14 +186,14 @@ void MainWindow::disableWithCount() ui->withcountButton->setChecked(false); } void MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity, double & total, double & filter) { total = stats->getTotalCounter(); filter = stats->getTotalFilter(); void MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieCharset, double & percentageTotal, double & percentageSecurity) { double total = stats.getTotalCounter(); double filter = stats.getTotalFilter(); percentageTotal = (double) 100 * (filter / total); percentageSecurity = (double) 100 * (stats->getNbSecurePasswords() / total); percentageSecurity = (double) 100 * (stats.getNbSecurePasswords() / total); /* LENGTH HISTOGRAM */ multimap<uint64_t, int> reverseL = flip_map<int>(stats->getStatsLength()); multimap<uint64_t, int> reverseL = flip_map<int>(stats.getStatsLength()); double percentageL; uint64_t nbHideL = 0; Loading @@ -221,7 +217,7 @@ void MainWindow::initGraphicalStats(QBarSeries * barLength, QPieSeries * pieChar /* CHARSET PIECHART */ multimap<uint64_t, string> reverseC = flip_map<string>(stats->getStatsCharsets()); multimap<uint64_t, string> reverseC = flip_map<string>(stats.getStatsCharsets()); int top = 0; uint64_t nbHideC = 0; Loading @@ -244,18 +240,17 @@ void MainWindow::handleResults() waitBox.close(); ui->charsetWidget->setHidden(false); ui->lengthWidget->show(); ui->ThreadlineEdit->setDisabled(false); ui->topLineEdit->setDisabled(false); ui->SimplelineEdit->setDisabled(false); ui->AdvancedlineEdit->setDisabled(false); ui->threadNumberSpin->setDisabled(false); ui->TopXAnswerSpin->setDisabled(false); ui->MaxSimpleMaxSpin->setDisabled(false); ui->MaxAdvMaskSpin->setDisabled(false); ui->RegexlineEdit->setDisabled(false); ui->lengthLineEdit->setDisabled(false); ui->lowerLineEdit->setDisabled(false); ui->upperLineEdit->setDisabled(false); ui->specialLineEdit->setDisabled(false); ui->digitLineEdit->setDisabled(false); ui->MinLenSpin->setDisabled(false); ui->MinOccLowerSpin->setDisabled(false); ui->MinOccUpperSpin->setDisabled(false); ui->MinOccSpecialSpin->setDisabled(false); ui->MinOccDigitsSpin->setDisabled(false); ui->startButton->setDisabled(false); ui->threadsCheckBox->setDisabled(false); ui->topCheckBox->setDisabled(false); ui->regexCheckBox->setDisabled(false); ui->maxAdvancedCheckBox->setDisabled(false); Loading @@ -264,9 +259,9 @@ void MainWindow::handleResults() QBarSeries * barLength = new QBarSeries(); QPieSeries * pieCharset = new QPieSeries(); double percentageTotal, percentageSecurity, total_counter, total_filter; double percentageTotal, percentageSecurity; initGraphicalStats(barLength, pieCharset, percentageTotal, percentageSecurity, total_counter, total_filter); initGraphicalStats(barLength, pieCharset, percentageTotal, percentageSecurity); Loading Loading @@ -308,16 +303,16 @@ void MainWindow::handleResults() /* LABELS */ ui->AnalyzedLabel->setText("Number of analyzed passwords: " + QString::number(total_filter) + QString::number(stats.getTotalFilter(), 'g', 2) + " on a total of " + QString::number(total_counter) + " passwords (" + QString::number(percentageTotal, 'f', 2) + "%)"); + QString::number(stats.getTotalFilter(), 'g', 2) + " passwords (" + QString::number(percentageTotal, 'g', 1) + "%)"); ui->securityLabel->setText("--> " + QString::number(percentageSecurity, 'f', 2) ui->securityLabel->setText("--> " + QString::number(percentageSecurity, 'g', 2) + "% of the passwords respects the security rules"); stats->print_stats(); stats.print_stats(); ui->resultLabel->setText("For more detailed statistics, check the file \"result.txt\""); } No newline at end of file