【问题标题】:How to create MD5 hash in Qt?如何在 Qt 中创建 MD5 哈希?
【发布时间】:2015-01-05 13:42:04
【问题描述】:

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

我的代码:

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

但我的代码不起作用! hash 方法在 Qt 中不起作用!

有什么建议吗?

【问题讨论】:

    标签: c++ qt hash md5


    【解决方案1】:

    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 的 mrthods。选择最适合您的。

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

    【讨论】:

      【解决方案2】:

      我使用toStdString().c_str()QString 转换为const char*static QByteArray hash(const QByteArray &amp;data, Algorithm method); 方法如下:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-04
        • 2014-07-25
        • 2011-11-29
        • 2012-02-18
        • 1970-01-01
        • 2011-07-26
        • 2011-09-20
        • 1970-01-01
        相关资源
        最近更新 更多