我想在Qt中创建一个MD5哈希代码。
我的代码:
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
的mrmethods。选择最适合你的。
http://qt-project.org/doc/qt-5/qstring.html
我在static QByteArray hash(const QByteArray &data, Algorithm method);
方法中使用toStdString().c_str()
从QString
铸造到const char*
,如下所示:
QString queryStr;
queryStr = QString("%1")
.arg(QString(QCryptographicHash::hash(ui->txtPassword->text().toStdString().c_str(),QCryptographicHash::Md5).toHex()));