#include #include #include #include #include #include #include "file_md5.h" void file_md5(QString fileName) { if (fileName.isEmpty()) { return; } QByteArray bytes; QByteArray byte_md; QFile qfile_in(fileName); //读到文件数据 qfile_in.setFileName(fileName); if (!qfile_in.open(QIODevice::ReadOnly)) { return; } bytes.clear(); bytes=qfile_in.readAll(); qDebug("read size=%d\n",bytes.size()); qfile_in.close(); //生成输出文件名 QString out_fileName = fileName.replace(".bin", "_IAP.bin"); QFile qfile_out(out_fileName); qfile_out.setFileName(out_fileName); //qDebug("%s", fileName.toUtf8()); //打开输出文件 if (!qfile_out.open(QIODevice::WriteOnly)) { return; } qDebug("write size=%d\n",bytes.size()); //将原始文件写入到输出文件 qfile_out.write(bytes); //清空校验值 byte_md.clear(); //生成校验值 byte_md = QCryptographicHash::hash(bytes, QCryptographicHash::Md5); qDebug("md5 size=%d\n",byte_md.size()); //将校验值追加文件尾部 qfile_out.write(byte_md); //关闭文件 qfile_out.close(); }