How to create MD5 hash in Qt?

2019-05-11 21:13发布

问题:

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?

回答1:

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



回答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()));


标签: c++ qt hash md5