title: What are the implications of hash collisions?
body: <p>I understand that having collisions will reduce the work required in a brute force attack on a hash algorithm because there are multiple inputs with identical outputs.</p>
  
  <p>However, what I am not clear about are the other types of attacks that would be assisted by collisions, and how detrimental are they really?  Not all weaknesses discovered in a hash algorithm make the algorithm technically weak.  It might still be infeasible to brute force even with collisions.  So what are the other attacks made easier by collisions?</p>
  
  <p>Also is it not possible to append some kind of additional checksum or digest as an additional part of the final hash to prevent collisions?  For example by adding a couple checksum bytes onto the output which may reduce the probability of collisions producing the same hash output coupled with the checksum?  Maybe even hashing the checksum before appending it so that value is even secure?</p>
  
  <p>o = hash(i) &amp; (hash(checksum(i))</p>