簡介
基於QT進行MD5值計算,安裝版本為QT5.13.0,需要#include "QCryptographicHash"
接口介紹
QCryptographicHash類中Algorithm枚舉了可以計算的類型。計算方式分為兩種:通過addData接口動態計算,通過hash接口靜態計算;圖中截取了該類的公共接口
使用方法
- 動態計算
先創建一個實例並指定計算的類型,調用reset接口復位對象,通過addData接口往對象中填入數據,最終通過resault接口獲取計算結果
QCryptographicHash hash(QCryptographicHash::Md5);
hash.reset();
hash.addData(ui->source->toPlainText().toLocal8Bit());
ui->resault->setText(hash.result().toHex().data());
- 靜態計算
直接將數據放到QCryptographicHash的hash接口內作為參數,同時指定計算方式,從返回值即可得到計算的結果
QByteArray value;
value = QCryptographicHash::hash(ui->source->toPlainText().toLocal8Bit(),QCryptographicHash::Md5);
ui->resault->setText(value.toHex().data());
文件校驗
使用動態計算的方式,從文件中按段讀取文本內容,使用addData接口逐漸進行計算
/* 打開文件 */
QFile file(path);
if(!file.open(QIODevice::ReadOnly))
{
qDebug()<<"文件打開錯誤";
return;
}
QCryptographicHash md5_hash(QCryptographicHash::Md5);
md5_hash.reset();
/* 文本讀取 */
while(!file.atEnd())
{
md5_hash.addData(file.readLine());
}
ui->md5output->setPlainText(md5_hash.result().toHex());