Password strengh ermitteln ?
Verfasst: 29. Oktober 2007 13:55
Als erstes grüsse ich erstmal die community und erwähne auch mal nebenbei das es meine ersten Schritte mit QT sind.
[Entwicklung unter Windows mit Eclipse QT version 4.3]
Meine Problemstellung ist folgende und zwar will ich per eingabe in ein QlineEdit auf ner Progressbar anzeigen wie sicher die Eingabe als passwort wäre. Ich erhalte jedoch keine Anzeige auf dem Progressbar. Das Signal Slot Konzept wird eigentlich simpel erklärt, jedoch weis ich nun nicht, ob ich im SLOT on_lineEditPassword_textChanged den neuen ermittelten Wert an das Signal valueCalculated übergeben kann. Weil dann müsste eigentlich der vordefinierte Slot vom Progressbar setValue den neuen wert erhalten .?
Wie gesagt, das sind meine ersten Schritte, und es wäre super wenn jemand mir helfen könnte.
main.cpp
Guimain.h
Guimain.cpp
[Entwicklung unter Windows mit Eclipse QT version 4.3]
Meine Problemstellung ist folgende und zwar will ich per eingabe in ein QlineEdit auf ner Progressbar anzeigen wie sicher die Eingabe als passwort wäre. Ich erhalte jedoch keine Anzeige auf dem Progressbar. Das Signal Slot Konzept wird eigentlich simpel erklärt, jedoch weis ich nun nicht, ob ich im SLOT on_lineEditPassword_textChanged den neuen ermittelten Wert an das Signal valueCalculated übergeben kann. Weil dann müsste eigentlich der vordefinierte Slot vom Progressbar setValue den neuen wert erhalten .?
Wie gesagt, das sind meine ersten Schritte, und es wäre super wenn jemand mir helfen könnte.
main.cpp
Code: Alles auswählen
#include "GuiMain.h"
#include <QtGui>
#include <QtCore>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Guimain w;
w.show();
a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
return a.exec();
}Guimain.h
Code: Alles auswählen
#ifndef GUIMAIN_H
#define GUIMAIN_H
#include <QtGui/QWidget>
#include "ui_test.h"
#include <QString>
class Guimain : public QWidget,
private Ui::GuimainClass
{
Q_OBJECT
public:
Guimain(QWidget *parent = 0);
~Guimain();
private:
Ui::GuimainClass ui;
protected slots:
void on_lineEditPassword_textChanged(const QString & text);
signals:
void valueCalculated(int);
};
#endif // GUIMAIN_HCode: Alles auswählen
#include "GuiMain.h"
#include <QVBoxLayout>
#include <QLineEdit>
#include <QtCore>
#include <QProgressBar>
#include <QRegExp>
#include <QLabel>
#include "math.h"
Guimain::Guimain(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
//QVBoxLayout* Layout = new QVBoxLayout();
QLineEdit * lineEditPassword = new QLineEdit(this);
lineEditPassword->setGeometry(0,0,100,20);
QProgressBar * progressBar = new QProgressBar(this);
progressBar->setGeometry(105,0,300,20);
progressBar->setMaximum(20);
progressBar->setMinimum(0);
//Layout->addWidget(lineEditPassword);
//Layout->addWidget(progressBar);
connect(lineEditPassword,SIGNAL(textChanged(const QString&)),
lineEditPassword,SLOT(on_lineEditPassword_textChanged(const QString& text)));
connect(lineEditPassword,SIGNAL(valueCalculated(int)),
progressBar,SLOT(setValue(int)));
}
Guimain::~Guimain()
{
}
void
Guimain::on_lineEditPassword_textChanged(const QString& text)
{
QRegExp grossB= QRegExp("ABCDEFGHIJKLMNOPQRSTVUWXYZ");
int gb=text.count(grossB);
QRegExp kleinB= QRegExp("abcdefghijklmnopqrstvuwxyz");
int kb=text.count(kleinB);
QRegExp zahlen= QRegExp("0123456789");
int zahl=text.count(zahlen);
QRegExp fremdzeichen= QRegExp("^°!§$%&=?`´+*~#,.-_:;");
int fremd=text.count(fremdzeichen);
int value = log10(26^gb)+log10(26^kb)+log10(10^zahl)+log10(20^fremd);
emit valueCalculated(value);
}