&gt; After the first hash, it&#x27;s just hashing a hash<p>The recommended password hashing functions (PBKDF2, bcrypt, scrypt) actually use the provided password in each iterated round of the algorithm. The DoS vector Someon1234 mentioned is real and has previously affected Django[0] (and, I believe, others). In order to prevent it, you should either limit the maximum password length (256 characters seems sensible, as does Django&#x27;s choice of 4096) or hash the password (to a known length) before passing it to the KDF.<p>[0] <a href="http:&#x2F;&#x2F;arstechnica.com&#x2F;security&#x2F;2013&#x2F;09&#x2F;long-passwords-are-good-but-too-much-length-can-be-bad-for-security&#x2F;" rel="nofollow">http:&#x2F;&#x2F;arstechnica.com&#x2F;security&#x2F;2013&#x2F;09&#x2F;long-passwords-are-g...</a>