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()));
但是我的代码不起作用了!hash
方法在Qt中不起作用!
有什么建议吗?
text()
返回 QString
,QCryptographicHash::hash
需要 QByteArray
,而且没有隐式转换,所以你需要自己进行转换。可以使用类似以下的代码:
QString queryStr;
ui->lineEdit_2->setText("hash");
queryStr = QString("%1").arg(QString(QCryptographicHash::hash(ui->lineEdit_2->text().toUtf8(),QCryptographicHash::Md5).toHex()));
qDebug()<< queryStr;
在文档中,您可以看到另一种返回QByteArray
的方法。请选择最适合您的方法。
toStdString().c_str()
从QString
转换为const char*
,用于static QByteArray hash(const QByteArray &data, Algorithm method);
方法中:QString queryStr;
queryStr = QString("%1")
.arg(QString(QCryptographicHash::hash(ui->txtPassword->text().toStdString().c_str(),QCryptographicHash::Md5).toHex()));