如何在Qt中创建MD5哈希?

时间:2014-11-09 00:41:02

标签: c++ qt hash md5

我想在Qt中创建一个MD5哈希码。

我的代码:

QString queryStr;
queryStr = QString("%1")
.arg(QString(QCryptographicHash::hash(ui->txtPassword->text(),QCryptographicHash::Md5).toHex()));

但我的代码不起作用! hash方法无效 Qt

有什么建议吗?

2 个答案:

答案 0 :(得分:3)

text()返回QStringQCryptographicHash::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。选择最适合你的。

http://qt-project.org/doc/qt-5/qstring.html

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