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?
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
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()));