Three problems in this code:
String.getBytes doesn’t use a charset
Radix should be 16 (hex) not 32
BigInteger shouldn’t be used, it drops leading zeros
Since this is just machine-local caching it’s actually fine that this algorithm isn’t md5, but it shouldn’t advertise itself as such. I’d really prefer if the algorithm was changed to actually be md5, however.