{"id":1600,"date":"2020-07-15T09:47:12","date_gmt":"2020-07-15T09:47:12","guid":{"rendered":"https:\/\/sdf-docs.mansystems.com\/docs\/acr-rules\/security\/hash-algorithm-should-be-bcrypt-or-ssha256\/"},"modified":"2021-07-30T09:09:53","modified_gmt":"2021-07-30T09:09:53","slug":"securityhashalgorithm","status":"publish","type":"docs","link":"https:\/\/sdf-docs.clevr.com\/?docs=acr-rules\/security\/securityhashalgorithm","title":{"rendered":"Hash Algorithm should be BCrypt or SSHA256"},"content":{"rendered":"\n<p>  Introduced in version 1.12 (12 August 2020)  <\/p>\n\n\n\n<p>A hash algorithm is used to encrypt sensitive information by converting text of the hashed string type to a hash value. Both hash algorithms BCrypt and SSHA256 are secure enough to protect passwords and alike. Mendix recommends to use BCrypt, because it is resistant to brute-force search attacks. However, due to this safeguard, the performance, whilst using BCrypt, might slow down. If you are using a high concurrency of hashing operations, you might consider switching to SSHA256. <\/p>\n\n\n\n<p>See for more information the <a rel=\"noreferrer noopener\" aria-label=\"Mendix documentation (opens in a new tab)\" href=\"https:\/\/docs.mendix.com\/refguide\/project-settings#hash-algorithm\" target=\"_blank\">Mendix documentation<\/a>.<\/p>\n\n\n\n<p><strong>Non-compliant examples:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"736\" src=\"https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/non-compliant-hash-algorithm-1.png\" alt=\"\" class=\"wp-image-1601\" srcset=\"https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/non-compliant-hash-algorithm-1.png 642w, https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/non-compliant-hash-algorithm-1-480x550.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 642px, 100vw\" \/><figcaption>SHA256 is not recommended to use as hash algorithm<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"736\" src=\"https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/non-compliant-hash-algorithm-2.png\" alt=\"\" class=\"wp-image-1602\" srcset=\"https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/non-compliant-hash-algorithm-2.png 642w, https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/non-compliant-hash-algorithm-2-480x550.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 642px, 100vw\" \/><figcaption> MD5 is not recommended to use as hash algorithm <\/figcaption><\/figure>\n\n\n\n<p><strong>Compliant examples:<\/strong><br><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"736\" src=\"https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/compliant-hash-algorithm-1.png\" alt=\"\" class=\"wp-image-1603\" srcset=\"https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/compliant-hash-algorithm-1.png 642w, https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/compliant-hash-algorithm-1-480x550.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 642px, 100vw\" \/><figcaption>Mendix recommends to use the BCrypt hash algorithm<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"642\" height=\"736\" src=\"https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/compliant-hash-algorithm-2.png\" alt=\"\" class=\"wp-image-1604\" srcset=\"https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/compliant-hash-algorithm-2.png 642w, https:\/\/sdf-docs.clevr.com\/wp-content\/uploads\/2020\/07\/compliant-hash-algorithm-2-480x550.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 642px, 100vw\" \/><figcaption> If you are using a high concurrency of hashing operations, you might consider using the SSHA256 hash algorithm<\/figcaption><\/figure>\n\n\n\n<p>Configure the hash algorithm in <em>Project Runtime Settings<\/em> and select <strong>BCrypt <\/strong> or <strong>SSHA256<\/strong>.<\/p>\n","protected":false},"featured_media":0,"parent":96,"menu_order":8,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-1600","docs","type-docs","status-publish","hentry"],"comment_count":0,"_links":{"self":[{"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=\/wp\/v2\/docs\/1600"}],"collection":[{"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1600"}],"version-history":[{"count":2,"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=\/wp\/v2\/docs\/1600\/revisions"}],"predecessor-version":[{"id":1609,"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=\/wp\/v2\/docs\/1600\/revisions\/1609"}],"up":[{"embeddable":true,"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=\/wp\/v2\/docs\/96"}],"next":[{"title":"If an anonymous user is allowed to change objects, constrain these objects to the owner","link":"https:\/\/sdf-docs.clevr.com\/?docs=acr-rules\/security\/securityanonymoususercreateconstrainedobjects","href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=\/wp\/v2\/docs\/1480"}],"prev":[{"title":"Entity access rules should be using attributes\/associations with at most read access in XPath constraints","link":"https:\/\/sdf-docs.clevr.com\/?docs=acr-rules\/security\/securityentityaccessxpath","href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=\/wp\/v2\/docs\/2041"}],"wp:attachment":[{"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1600"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/sdf-docs.clevr.com\/index.php?rest_route=%2Fwp%2Fv2%2Fdoc_tag&post=1600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}