CRC's are based on polynomial values which may be different (see also
Cyclic redundancy check - Wikipedia[
^]).
So you have to use the same polynomial values with the same bit order for your C# and Java calculations.
The Java sources can be found here:
Source for java.util.zip.CRC32 (GNU Classpath 0.95 Documentation)[
^]. It is based on
RFC 1952[
^]. According to those the polynoimal 0xedb88320 is used.
So you have to ensure that the C# calculation uses the same. Check the documentation of the used DLL (or the source code if available). If the polynomial can't be specified you have to use a different DLL or write your own (e.g. by converting the Java code to C#).