Here is the solution to the problem (I finally was able to solve this myself) :
In Java, replace
final byte[] digestOfPassword = md.digest(Base64.decodeBase64(keyString.getBytes("UTF-8")));`
with :
final byte[] digestOfPassword = md.digest(keyString.getBytes("UTF-8"));
Because on the C# side, no Base64 is used for the key :
keyArray = hashmd5.ComputeHash(UTF8Encoding.UTF8.GetBytes(SecKey));