需求

最近需要在 qt 中使用 sha1 加密。

解决

Qt 中已经提供了解决方法,就是 QCryptographicHash, 可以直接调用他的 hash 静态方法,只需要注明是 QCryptographicHash::Sha1 即可。

void MainWindow::on_pushButton_clicked()
{
    QString id = ui->lineEdit->text();
    QByteArray sha1 = QCryptographicHash::hash(id.toLocal8Bit(), QCryptographicHash::Sha1);
    string str = ptz::ByteArray2HexString((uint8_t*)sha1.data(), sha1.size());

    QString pwd = QString::fromStdString(str);
    qDebug() << "byte array: " << sha1 << ", string: " << pwd << Qt::endl;

    ui->textBrowser->setText(pwd);
}

参考

QT MD4 MD5 Sha1等几种加密方式

QCryptographicHash Class

Secure Hash Algorithm SHA-1