The concept of hashing is pretty old and it's sometimes the primary step for encryption methods. Hashing normally involves transforming the given information into characters recognizable by the hashing algorithm. These are mathematical and so produce the same output with the same input.
This makes it easy to use for detecting changes between 2 similar inputs.
Input: hello Dummy Hash: 123sad
Input: hello\_ Dummy Hash: 123sads
_ represents a different bit of information to the system and so the
hashing takes consideration of it's existence.
I've already mentioned one use case, diffing. Though a question might arise, Can I also diff binaries? Yes sure, you can