Image hashes tell whether two images look nearly identical. This is different from cryptographic hashing algorithms (like MD5, SHA-1) where tiny changes in the image give completely different hashes.
Every language port produces the same hex string as Python imagehash for the same input image, for the same algorithm and size. This means you can hash an image in Java, store the hex, and compare it ...