Qtをメインに、プログラムやITに関する情報を発信

Qtの戯言

その他

Qtでハッシュ値を求める

更新日:

QCryptographicHash

MD5やSHA-256などのハッシュを求めるには、QCryptographicHash::hash()関数を使用します。

 

サンプル

ラインエディットに入力した文字列から、MD4、MD5、SHA-1、SHA-256、SHA-512を求めるサンプルです。
他にどのようなハッシュがサポートされているかは、公式サイトを確認してください。

デザイン(クリックで拡大)

 

コード。

#include <QCryptographicHash>
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_clicked()
{
    QByteArray src = ui->lineEdit->text().toUtf8();

    // MD4
    QString md4 = QString(QCryptographicHash::hash(src, QCryptographicHash::Md4).toHex());
    ui->label_md4->setText(md4);

    // MD5
    QString md5 = QString(QCryptographicHash::hash(src, QCryptographicHash::Md5).toHex());
    ui->label_md5->setText(md5);

    // SHA-1
    QString sha1 = QString(QCryptographicHash::hash(src, QCryptographicHash::Sha1).toHex());
    ui->label_sha1->setText(sha1);

    // SHA-256
    QString sha256 = QString(QCryptographicHash::hash(src, QCryptographicHash::Sha256).toHex());
    ui->label_sha256->setText(sha256);

    // SHA-512(長いので64文字で改行)
    QString sha512 = QString(QCryptographicHash::hash(src, QCryptographicHash::Sha512).toHex());
    QString sha512_disp = sha512.left(64) + QString::fromLocal8Bit("\n") + sha512.right(64);
    ui->label_sha512->setText(sha512_disp);
}

 

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void on_pushButton_clicked();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

 

実行結果。(クリックで拡大)

-その他
-, ,

Copyright© Qtの戯言 , 2020 All Rights Reserved Powered by STINGER.