Problems with Open-Source Downloads read https://www.qt.io/blog/problem-with-open-source-downloads and https://forum.qt.io/post/638946
QCryptographicHash::Md5 VS md5sum [Solved]
I need to generate an MD5 sum in Qt 5.
This is my example code:
qDebug() << md5_generator.result().toHex();
and I get:
Now I create a file with the same content:
and I try md5sum linux command I get:
$ md5sum test
Where is the problem?
I checked it with another tool and it's the same as Qt result.
Are you sure you didn't put a newline at the end of the file? It will also count as content.
Maybe the Linux tool also takes some file metadata (encoding, maybe BOM is present?) into account? In your Qt code you pass only the raw data. For Linux, you pass a whole file.
I just checked for a string "123456789\n" and the checksum is indeed b2cfa4183267af678ea06c7407d4d6d8
So just fix your file.
Thanks for the answers!
The file was created with "vi" and I didn't put new line at the end of the text.
There probably is in the file a kind of EOF that I don't see.
ChrisW67 last edited by
By default vi will ensure the last line of the file has a line feed. Your current file will be 10 bytes (11 on Windows). If you are actually using vim, instead of generic vi, you can turn that off:
To create your test file without the line feed (UNIX):
$ echo -n '123456789' > test.txt
$ ls -l test.txt
-rw-r--r-- 1 chrisw users 9 Apr 4 11:29 test.txt
Now it's more clear.