You somewhat miss the meaning of the word "same" and don't understand what exactly you compare and hash. Let's say you have two different compressed archive files, after unpacking they both return files, which compare to identity. Let's consider this unpacked contents "the same data". It's pretty possible, you already know it.
The direct consequence of the "sameness" of unpacked data is that hashes of that data will also compare to identity, i.e. will be "the same data".
Could this mean the archives themselves are "the same data"?
NO.
A compressed archive can be considered as a representation of data, somewhat it requires less computer memory to store, which is why we use it. A compressed data stream can be viewed as a set of instructions, which are to be processed by the special decompressor. It processes these instructions and hopefully reconstructs the original data.
For example, here is an idea of LZ77 algorithm: to produce a stream which directly contain raw charachers and also may contain some magic instruction which is understood as "look back N bytes and copy M bytes starting from there". Indeed, you can produce several different sets of such instructions, which still output the same data; for example, a string "abababab" can be stored as such, as "ab{-2,2}{-4,2}{-6,2}", "ab{-2,2}{-2,2}{-2,2}" or "ab{-2,6}" (this last one is very clever idea). Are those "compressed" representations the same? No, they are of different length and contain different numbers as parameters of "magic instruction"; overall they are different sets of instructions to finally return back the same original data. (Note, if you want to store such compressed streams to a file you'll use some efficient binary packing instead of curly brackets and ASCII digits. To keep you intrigued, I just described a half of good old ZIP algorithm.)
Another example is programming languages. Compare:
#include <stdio.h>
int main(void) {
printf("Hello World!\n");
return 0;
}
Begin
WriteLn("Hello World!")
End.
Do these programs produce the same output? Yes, sure. Are they the same? No, they are in different languages!
You have "same data" in archives, but archives themselves are sets of instructions and those instructions are different, despite the fact following them you'll end with the "same data". When you you checksum archives, you checksum those instructions themselves, not the result of following them. So you'll get different hashes.
A compressor is a state-of-art program which tries to find a set of optimal instructions which will still return back the given data. It is highly optimized to make all of computer it runs on. Because of this, the output depends on the environment: the particular set of instructions (a compressed file) it returns may depend on many factors, including the version of compressor program, the memory available during compression, the number of available processor cores and their type, and so on. Some compression algorithms even depend on true randomness! There is countless number of such environments, so it is extremely hard to find "the" environment like that in which the given archive file was produced to produce it again.
You are solving a wrong task. If you want to checksum/hash something, it must be something can recreate exactly. The compressed stream is not what you can recreate exactly.