Suppose I have a password, say "thisIsThePassword"
.
Then I have MD5 hashes of that password followed by an increasing numeric suffix:
MD5("thisIsThePassword1") = c5c038617ea97315f137606c4123789e
MD5("thisIsThePassword2") = 0a52caffe2e7904c832a257a406f903f
MD5("thisIsThePassword3") = 06683298a9c3cdf8940518db54c43758
...
The question is: are those hashes related to each other in any way, so that from one hash it is possible to compute another one without having to bruteforce the password? Hashes are supposed to be totally different and random as soon as you change one bit in the input, but I'm afraid there are some gotchas, maybe when comparing the hash of thisIsThePassword1
with the one of thisIsThePassword11
(and subsequent suffixes starting with "1"). Would it be better or make any difference if we used SHA instead, or make sure the input is always the same length? What function or method should I use if I wanted to make sure that you can't easily compute another of those hashes unless you bruteforce the password?