Qtの基礎 - ハッシュ値

提供: MochiuWiki : SUSE, EC, PCB

2021年2月19日 (金) 23:59時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == Qtにおいて、ハッシュ値を求める手順を記載する。<br> <br><br> == ハッシュ値の求め方 == MD5やSHA-256等のハッシュを求め…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

概要

Qtにおいて、ハッシュ値を求める手順を記載する。


ハッシュ値の求め方

MD5やSHA-256等のハッシュを求めるには、QCryptographicHashクラスのhashメソッドを使用する。

以下の例では、ラインエディットに入力した文字列から、MD4、MD5、SHA-1、SHA-256、SHA-512のハッシュ値を求めている。
また、サポートされているハッシュの詳細については、Qtの公式ドキュメントを参照すること。

 // MainWindow.h
 
 #pragma once
 
 #include <QMainWindow>
 
 namespace Ui {class MainWindow;}
 
 class MainWindow : public QMainWindow
 {
    Q_OBJECT
 
 public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
 
 private slots:
    void on_pushButton_clicked();
 
 private:
    Ui::MainWindow *ui;
 };


 // MainWindow.cpp
 
 #include <QCryptographicHash>
 #include "MainWindow.h"
 #include "ui_MainWindow.h"
 
 MainWindow::MainWindow(QWidget *parent) : QWidget(parent), ui(new Ui::MainWindow)
 {
    ui->setupUi(this);
 }
 
 MainWindow::~MainWindow()
 {
    delete ui;
 }
 
 void MainWindow::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);
 }