• QT的MD5计算


    简介

    基于QT进行MD5值计算,安装版本为QT5.13.0,需要#include "QCryptographicHash"

    接口介绍

    QCryptographicHash类中Algorithm枚举了可以计算的类型。计算方式分为两种:通过addData接口动态计算,通过hash接口静态计算;图中截取了该类的公共接口

    使用方法

    1. 动态计算
      先创建一个实例并指定计算的类型,调用reset接口复位对象,通过addData接口往对象中填入数据,最终通过resault接口获取计算结果
        QCryptographicHash hash(QCryptographicHash::Md5);
        hash.reset();
    
        hash.addData(ui->source->toPlainText().toLocal8Bit());
    
        ui->resault->setText(hash.result().toHex().data());
    
    1. 静态计算
      直接将数据放到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());
    
  • 相关阅读:
    C#的list和arry相互转化
    c++11の的左值、右值以及move,foward
    c++11の异步方法 及线程间通信
    C#的static
    HDU4027 Can you answer these queries?
    POJ3264 Balances Lineup
    ZOJ1610 Count the Colors
    ZOJ4110 Strings in the Pocket(2019浙江省赛)
    HDU1698 Just a Hook
    POJ3468 A Simple Problem with Integers
  • 原文地址:https://www.cnblogs.com/niu-li/p/12612455.html
Copyright © 2020-2023  润新知