Hello everybody, this is the first message I write here. I'm sorry to introduce myself with this frightening problem, but I just encountered it... I hope it's frightening just for me! :-| I'm using SUSE Linux 10.0, installed from an Eval DVD and switched right afterwards to an OSS repository (so I guess this is the correct list). My computer is an Athlon64, I'm running the 64-bit edition of Linux. This is the problem: md5sums gives _different_ output on the _same_ file! arrigo@arrigo:~/temp> dd if=/dev/urandom bs=1M count=300 of=test.dat 300+0 records in 300+0 records out 314572800 bytes (315 MB) copied, 69.1124 seconds, 4.6 MB/s arrigo@arrigo:~/temp> md5sum test.dat 23a3f9ea48b3722df250dc5b6d378381 test.dat arrigo@arrigo:~/temp> md5sum test.dat 23a3f9ea48b3722df250dc5b6d378381 test.dat arrigo@arrigo:~/temp> md5sum test.dat 43e7f605c7d1b60373156bd453795e85 test.dat arrigo@arrigo:~/temp> Please believe me, I'm not joking: this is the actual output of md5sum, I gave those commands one right after the other, so the test.dat file wasn't touched among the tests. After some minutes I ran md5sum again and it gave the same output as the first two runs: arrigo@arrigo:~/temp> md5sum test.dat 23a3f9ea48b3722df250dc5b6d378381 test.dat arrigo@arrigo:~/temp> The md5sum is installed in my system is ver. 5.3.0, it's the default installed by SUSE. My system is up to date with the latest updates from YOU. The partition I've been working on is 46 GB large, formatted with ReiserFS, on an IDE hard disk. As a test, i downloaded version 5.93 of GNU coreutils, compiled it (I just ran ./configure and make) and ran this new md5sum: That version gave yet some different output: arrigo@arrigo:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat 23a3f9ea48b3722df250dc5b6d378381 /home/arrigo/temp/test.dat arrigo@arrigo:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat 23a3f9ea48b3722df250dc5b6d378381 /home/arrigo/temp/test.dat arrigo@arrigo:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat 23a3f9ea48b3722df250dc5b6d378381 /home/arrigo/temp/test.dat arrigo@arrigo:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat 583caa801a1f27fc9cfcd783f5d94ec7 /home/arrigo/temp/test.dat arrigo@arrigo:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat 23a3f9ea48b3722df250dc5b6d378381 /home/arrigo/temp/test.dat arrigo@arrigo:~/temp/coreutils/coreutils-5.93/src> Again, the `real' value of the MD5 hash looks like the one starting with "23a" while sometimes I encountered different values. E.G. the 5.93 version, after some more trials, gave the following output: arrigo@arrigo:~/temp/coreutils/coreutils-5.93/src> ./md5sum ~/temp/test.dat 58913fa33641eb0bfa398f1643412259 /home/arrigo/temp/test.dat arrigo@arrigo:~/temp/coreutils/coreutils-5.93/src> That is different from any of the previous. Does anyone you have a clue about the cause of this? You know, computers are supposed to do correct calculations, that is that the same data should give always the same result!... My only idea right now is about the 64-bit system. Perhaps some other 32-bit running program switches the CPU in 32-bit mode, changing the results of md5sum? I tried re-compiling the coreutils in 32-bit version, that is running: $ CC="gcc -m32" ./configure $ CC="gcc -m32" make The resulting md5sum binary gave me, after some trials, another different value: 9f30d42e54af45b879700b776f1247e9 /home/arrigo/temp/test.dat Please let me know if you need any more information. If you want to repeat the steps I followed to exploit this, just pick a ~300 MB file and run repeatedly md5sum on it. I don't know if it works with different sizes, too. -- rigo http://rigo.altervista.org