File.hashCode()
returns a hash code derived from the file object, i.e. basically the file name. It does not hash the contents of the file on disk. Since the two file names are different there is a good chance that the hash codes are different as well.
Answer to the edit: You compare now two message digest objects, not the hashes of the files. Since the objects are different, you get again non-equality.
Instead you should return the hash sum from the function:
private byte[] fileHash(File file) {
...
return md.digest();
}
and compare them like this:
if (Arrays.equals(fileHash(fileSrc), fileHash(fileDes))) { ... }