title: Strength of hashing algorithms
body: <p>I've noticed things such as</p>
  
  <blockquote>
    <p>MD5 has been cracked for collisions and is no longer cryptographically secure; use SHA-1 instead. SHA-1 has been cracked for collisions and is no longer cryptographically secure; use SHA-2 instead.</p>
  </blockquote>
  
  <p>From my current understanding, the chance of getting a certain hash <code>h(d)</code> from data <code>d</code> is equal for all hashing results. This implies, then, that the only strengthening mechanism for a hashing algorithm is to return longer hashes.</p>
  
  <p>This also implies that all hashes (when not taking hash result length into account) are equally insecure to brute forcing, and that <em>cryptographically broken</em> only refers to quicker attacks other than brute force searching.</p>
  
  <p>Is this true? What measures do modern cryptographic hashing algorithms use to prevent collision attacks?</p>