file_md5.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include <qsettings.h>
  2. #include <qfiledialog.h>
  3. #include <qtextstream.h>
  4. #include <qfile.h>
  5. #include <QTextCodec>
  6. #include <QCryptographicHash>
  7. #include "file_md5.h"
  8. void file_md5(QString fileName)
  9. {
  10. if (fileName.isEmpty())
  11. {
  12. return;
  13. }
  14. QByteArray bytes;
  15. QByteArray byte_md;
  16. QFile qfile_in(fileName);
  17. qfile_in.setFileName(fileName);
  18. if (!qfile_in.open(QIODevice::ReadOnly))
  19. {
  20. return;
  21. }
  22. bytes.clear();
  23. bytes=qfile_in.readAll();
  24. qDebug("read size=%d\n",bytes.size());
  25. qfile_in.close();
  26. QString out_fileName = fileName.replace(".bin", "_out.bin");
  27. QFile qfile_out(out_fileName);
  28. qfile_out.setFileName(out_fileName);
  29. //qDebug("%s", fileName.toUtf8());
  30. if (!qfile_out.open(QIODevice::WriteOnly))
  31. {
  32. return;
  33. }
  34. qDebug("write size=%d\n",bytes.size());
  35. qfile_out.write(bytes);
  36. byte_md.clear();
  37. byte_md = QCryptographicHash::hash(bytes, QCryptographicHash::Md5);
  38. qDebug("md5 size=%d\n",byte_md.size());
  39. qfile_out.write(byte_md);
  40. qfile_out.close();
  41. }