How to create MD5 hash in Qt?

I want to create a MD5 hash code in Qt.

My code :

QString queryStr;
queryStr = QString("%1")
.arg(QString(QCryptographicHash::hash(ui->txtPassword->text(),QCryptographicHash::Md5).toHex()));

but my code does not work! hash method does not work in Qt!

Any suggestion?

Upvotes: 3

Views: 6650

Answers (2)

I used of toStdString().c_str() to casting from QString to const char* in static QByteArray hash(const QByteArray &data, Algorithm method); method as bellow :

QString queryStr;
    queryStr = QString("%1")
            .arg(QString(QCryptographicHash::hash(ui->txtPassword->text().toStdString().c_str(),QCryptographicHash::Md5).toHex()));

Upvotes: 0

Jablonski
Jablonski

Reputation: 18504

text() returns QString, QCryptographicHash::hash requires QByteArray and there is no implicit conversion, so you should do this by yourself. Use something like this:

QString queryStr;

ui->lineEdit_2->setText("hash");
queryStr = QString("%1").arg(QString(QCryptographicHash::hash(ui->lineEdit_2->text().toUtf8(),QCryptographicHash::Md5).toHex()));
qDebug()<< queryStr;

In the documentation you can see another mrthods which returns QByteArray. Choose the best for you.

http://qt-project.org/doc/qt-5/qstring.html

Upvotes: 3

Related Questions