{"id":2707,"date":"2019-10-04T21:26:49","date_gmt":"2019-10-05T01:26:49","guid":{"rendered":"http:\/\/ninecrows.com\/career\/?p=2707"},"modified":"2019-10-04T09:36:01","modified_gmt":"2019-10-04T13:36:01","slug":"fun-with-password-hashing","status":"publish","type":"post","link":"https:\/\/ninecrows.com\/career\/2019\/10\/04\/fun-with-password-hashing\/","title":{"rendered":"Fun with Password Hashing"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"alignleft is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"876\" data-permalink=\"https:\/\/ninecrows.com\/career\/crowsicon\/\" data-orig-file=\"https:\/\/i0.wp.com\/ninecrows.com\/career\/wp-content\/uploads\/2016\/07\/CrowsIcon.jpg?fit=512%2C512&amp;ssl=1\" data-orig-size=\"512,512\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1390058691&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}\" data-image-title=\"CrowsIcon\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/i0.wp.com\/ninecrows.com\/career\/wp-content\/uploads\/2016\/07\/CrowsIcon.jpg?fit=300%2C300&amp;ssl=1\" data-large-file=\"https:\/\/i0.wp.com\/ninecrows.com\/career\/wp-content\/uploads\/2016\/07\/CrowsIcon.jpg?fit=474%2C474&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/ninecrows.com\/career\/wp-content\/uploads\/2016\/07\/CrowsIcon.jpg?resize=64%2C64\" alt=\"\" class=\"wp-image-876\" width=\"64\" height=\"64\" srcset=\"https:\/\/i0.wp.com\/ninecrows.com\/career\/wp-content\/uploads\/2016\/07\/CrowsIcon.jpg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/ninecrows.com\/career\/wp-content\/uploads\/2016\/07\/CrowsIcon.jpg?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/ninecrows.com\/career\/wp-content\/uploads\/2016\/07\/CrowsIcon.jpg?w=512&amp;ssl=1 512w\" sizes=\"(max-width: 64px) 100vw, 64px\" \/><\/figure><\/div>\n\n\n\n<p>I&#8217;ve been spending some time looking into password hashing best practices over the last week.<\/p>\n\n\n\n<p>I&#8217;ve know about the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Bcrypt\">BCrypt <\/a>algorithm for a long time as the old BSD standard &#8216;high effort&#8217; hashing algorithm designed to make brute forcing hashes difficult.<\/p>\n\n\n\n<p>I&#8217;ve found that there is a new effort called <a href=\"https:\/\/en.wikipedia.org\/wiki\/Scrypt\">SCrypt <\/a>intended to generate a modern equivalent for dedicated password hashing as well as a &#8216;password expansion&#8217; algorithm that appears to be in wide used called <a href=\"https:\/\/en.wikipedia.org\/wiki\/PBKDF2\">PBKFD2<\/a>.<\/p>\n\n\n\n<p>The PBKDF2 algorithm applies an <a href=\"https:\/\/en.wikipedia.org\/wiki\/HMAC\">HMAC <\/a>using the key input to inject the salt and then to chain iterations of the process. It takes a user selected number of iterations that allows the work-load to generate the hash to be tuned to the scope of expected attacks (and to the performance of the target hardware). This allows modern high performance algorithms such as SHA-256 to be applied in a manner that makes the total calculation of the final salted hash resource intensive enough to reduce the likelihood of a successful brute force attack.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been spending some time looking into password hashing best practices over the last week. I&#8217;ve know about the BCrypt algorithm for a long time as the old BSD standard &#8216;high effort&#8217; hashing algorithm designed to make brute forcing hashes difficult. I&#8217;ve found that there is a new effort called SCrypt intended to generate a &hellip; <a href=\"https:\/\/ninecrows.com\/career\/2019\/10\/04\/fun-with-password-hashing\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Fun with Password Hashing<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[3,19,7],"tags":[],"class_list":["post-2707","post","type-post","status-publish","format-standard","hentry","category-ideas","category-security","category-topics"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7F2Qc-HF","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/posts\/2707"}],"collection":[{"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/comments?post=2707"}],"version-history":[{"count":2,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/posts\/2707\/revisions"}],"predecessor-version":[{"id":2709,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/posts\/2707\/revisions\/2709"}],"wp:attachment":[{"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/media?parent=2707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/categories?post=2707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ninecrows.com\/career\/wp-json\/wp\/v2\/tags?post=2707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}