{"id":223,"date":"2018-12-01T04:46:38","date_gmt":"2018-12-01T04:46:38","guid":{"rendered":"http:\/\/blogs.oregonstate.edu\/copcas\/?p=223"},"modified":"2018-12-01T04:46:38","modified_gmt":"2018-12-01T04:46:38","slug":"password-hashing-with-python","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/copcas\/2018\/12\/01\/password-hashing-with-python\/","title":{"rendered":"Password Hashing with Python"},"content":{"rendered":"<p>Improper password storage can leave a website vulnerable to data breaches, so it&#8217;s very important for developers to employ proper security when handling user data. For passwords, it&#8217;s hashing.<\/p>\n<p><a href=\"https:\/\/www.cyberciti.biz\/python-tutorials\/securely-hash-passwords-in-python\/\">Here<\/a> is a great tutorial I&#8217;ve seen that outlines some basics about hashing compared to encryption, and provides an example of how to implement the latest hashing algorithms in your next Python script. I personally enjoyed being able to write a script in just a few minutes that allowed me to see what hashing looks like, and the effects that things like salting a hash has on the end result.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Improper password storage can leave a website vulnerable to data breaches, so it&#8217;s very important for developers to employ proper security when handling user data. For passwords, it&#8217;s hashing. Here is a great tutorial I&#8217;ve seen that outlines some basics about hashing compared to encryption, and provides an example of how to implement the latest &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blogs.oregonstate.edu\/copcas\/2018\/12\/01\/password-hashing-with-python\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Password Hashing with Python&#8221;<\/span><\/a><\/p>\n","protected":false},"author":9426,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-223","post","type-post","status-publish","format-standard","hentry"],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/posts\/223","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/users\/9426"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/comments?post=223"}],"version-history":[{"count":2,"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/posts\/223\/revisions"}],"predecessor-version":[{"id":226,"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/posts\/223\/revisions\/226"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/media?parent=223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/categories?post=223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/copcas\/wp-json\/wp\/v2\/tags?post=223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}