Suppose I have an algorithm that relies on multiple iterations of a hash function like SHA1 to slow down an attacker trying to bruteforce a hash.
digest[0] = hash(password + salt)
for i in 1..r:
digest[i] = hash(digest[i-1] + password)
The final digest[r]
is then used as the hash. How does this compare to a more standard implementation like PBKDF2 or bcrypt?
This website states:
simply iteratively hashing the hash of the password isn't enough as it can be parallelized in hardware and executed as fast as a normal hash.
Is there any truth to this statement? Since every iteration of the hash function is dependent on the previous, how could this be possible?