Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Making many iterations with a hash function has a few subtleties, because there must be some kind of "salting" involved, and because existing hash functions are not as "random" as what could be hoped for; so care must be taken, in which case you end up with <a href="http://en.wikipedia.org/wiki/PBKDF2" rel="noreferrer">PBKDF2</a>. PBKDF2 was designed for <em>key derivation</em>, which is not exactly the same than password hashing, but it turned out to be quite good at it too.</p> <p>bcrypt has a (slight) advantage over PBKDF2-with-SHA-1 in that bcrypt is derived from the <a href="http://en.wikipedia.org/wiki/Blowfish_%28cipher%29" rel="noreferrer">Blowfish</a> block cipher. The point of having many iterations is to make the password processing slow, and, in particular, slow for the attacker. We <em>tolerate</em> that the function is made slow for the normal, honest systems, because it thwarts extensive password guessing. But an attacker may use hardware which the normal system does not use, e.g. a <a href="http://en.wikipedia.org/wiki/GPGPU" rel="noreferrer">programmable GPU</a>, which gives quite a boost to computations which fit well on that kind of hardware. Blowfish and bcrypt use RAM-based lookup tables (tables which are <em>modified</em> during the processing); such tables are easy to handle for a general purpose CPU, but quite cumbersome on a GPU; thus, bcrypt somewhat hinders processing enhancement by the attacker with GPU. That's a bonus which makes bcrypt a bit more desirable for a password storage than PBKDF2.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload