我想在Qt中创建一个MD5哈希码。
我的代码:
QString queryStr;
queryStr = QString("%1")
.arg(QString(QCryptographicHash::hash(ui->txtPassword->text(),QCryptographicHash::Md5).toHex()));
但我的代码不起作用!
hash
方法无效 Qt !
有什么建议吗?
答案 0 :(得分:3)
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
的mrthod。选择最适合你的。
答案 1 :(得分:0)
我曾经使用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()));