<story><title>Don&apos;t use bcrypt</title><url>http://www.unlimitednovelty.com/2012/03/dont-use-bcrypt.html</url></story><parent_chain><item><author>smacktoward</author><text>&lt;i&gt;&amp;#62; I write this post because I&apos;ve noticed a sort of &quot;JUST USE BCRYPT&quot; cargo cult... This is absolutely the wrong attitude to have about cryptography.&lt;/i&gt;&lt;p&gt;No. This is incorrect. This is exactly the &lt;i&gt;right&lt;/i&gt; attitude for most developers to have about cryptography, because on a subject as complex as cryptography most developers (including me!) are &lt;i&gt;nowhere near smart enough&lt;/i&gt; to understand the ins and outs.&lt;p&gt;Encouraging people to make their own decisions on subjects they aren&apos;t equipped to understand fully is dangerous advice. It leads to all sorts of bad outcomes. People who have to choose between options they don&apos;t really understand end up choosing things at random, or on the basis of incomplete or misleading information, or getting seized up by the need to make a choice and choosing nothing at all.&lt;p&gt;This makes cryptography one of the &lt;i&gt;very few&lt;/i&gt; cases where a cargo-cult approach is better than the alternatives. A simple message that &quot;this is the approach people smarter than you agree is correct, use it,&quot; repeated consistently, will help more people more completely than dumping them into the deep end of the crypto pool ever will.</text></item></parent_chain><comment><author>pnathan</author><text>&amp;#62; No. This is incorrect. This is exactly the right attitude for most developers to have about cryptography, because on a subject as complex as cryptography most developers (including me!) are nowhere near smart enough to understand the ins and outs.&lt;p&gt;I hear that a lot, and it always reminds me of Jante Law[1]. Its a disservice to keep telling people that they are too stupid to understand something. Too ignorant, perhaps - that can be remedied - but everyone is &lt;i&gt;not&lt;/i&gt; too stupid to understand crypto. It&apos;s simply another field, mostly mathematical, and goof-ups are easy to make and often very costly.&lt;p&gt;edit: I should also make another point. Cryptography is &lt;i&gt;exactingly and excruciatingly hard&lt;/i&gt; to do at industrial strength. I am &lt;i&gt;not&lt;/i&gt; recommending people go out and roll their own crypto for production systems. It&apos;s possible for the initiated to do right; it&apos;s possible to get initiated. The uninitiated almost certainly will goof. I&apos;d like to further point out [2], which is a discussion and break on a homebrew crypto, for a taste of the difficulties and mathematical sophistication needed.&lt;p&gt;[1] &lt;a href=&quot;http://en.wikipedia.org/wiki/Jante_Law&quot; rel=&quot;nofollow&quot;&gt;http://en.wikipedia.org/wiki/Jante_Law&lt;/a&gt;&lt;p&gt;[2]&lt;a href=&quot;http://phrack.org/issues.html?issue=64&amp;#38;id=10#article&quot; rel=&quot;nofollow&quot;&gt;http://phrack.org/issues.html?issue=64&amp;#38;id=10#article&lt;/a&gt;</text></comment>
<story><title>Don&apos;t use bcrypt</title><url>http://www.unlimitednovelty.com/2012/03/dont-use-bcrypt.html</url></story><parent_chain><item><author>smacktoward</author><text>&lt;i&gt;&amp;#62; I write this post because I&apos;ve noticed a sort of &quot;JUST USE BCRYPT&quot; cargo cult... This is absolutely the wrong attitude to have about cryptography.&lt;/i&gt;&lt;p&gt;No. This is incorrect. This is exactly the &lt;i&gt;right&lt;/i&gt; attitude for most developers to have about cryptography, because on a subject as complex as cryptography most developers (including me!) are &lt;i&gt;nowhere near smart enough&lt;/i&gt; to understand the ins and outs.&lt;p&gt;Encouraging people to make their own decisions on subjects they aren&apos;t equipped to understand fully is dangerous advice. It leads to all sorts of bad outcomes. People who have to choose between options they don&apos;t really understand end up choosing things at random, or on the basis of incomplete or misleading information, or getting seized up by the need to make a choice and choosing nothing at all.&lt;p&gt;This makes cryptography one of the &lt;i&gt;very few&lt;/i&gt; cases where a cargo-cult approach is better than the alternatives. A simple message that &quot;this is the approach people smarter than you agree is correct, use it,&quot; repeated consistently, will help more people more completely than dumping them into the deep end of the crypto pool ever will.</text></item></parent_chain><comment><author>InclinedPlane</author><text>Option 1: Rely on what everyone else does.&lt;p&gt;What happens if that method is flawed? You hear about it as soon as it&apos;s discovered and it gets fixed quick.&lt;p&gt;Option 2: Roll your own stack based on a personal understanding of cryptography.&lt;p&gt;What happens if that method is flawed? Perhaps only you and an attacker could possibly know such a thing. You have to be ever vigilant and you have to acquire an incredible amount of crypto knowledge. If you ever leave the company they are pretty much fucked from then on until whatever you wrote is replaced.&lt;p&gt;Don&apos;t roll your own system.</text></comment>