﻿
{"id":9332,"date":"2018-09-14T14:19:43","date_gmt":"2018-09-14T14:19:43","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=9332"},"modified":"2018-09-14T14:19:43","modified_gmt":"2018-09-14T14:19:43","slug":"node-js-bcrypt-modulu-ile-parola-sifreleme","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/node-js-bcrypt-modulu-ile-parola-sifreleme\/","title":{"rendered":"Node.js &#8211; bcrypt Mod\u00fcl\u00fc \u0130le Parola \u015eifreleme"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Web platformunda kullan\u0131c\u0131yla etkile\u015fim sonucu g\u00fcvenli\u011fine riayet edilmesi gereken bilgiler mevcuttur. Bu bilgiler; kullan\u0131c\u0131 \u015fifreleri, hesap veya kredi kart\u0131 bilgileri yahut kullan\u0131c\u0131ya dair farkl\u0131 hassasiyet bar\u0131nd\u0131ran mahiyette bilgiler olabilir. Kullan\u0131c\u0131lar g\u00fcvendikleri platformlarla bu bilgileri payla\u015f\u0131rken bir yandan da yasal olarak devlet taraf\u0131ndan bu durum g\u00fcvence alt\u0131na al\u0131nmakta ve kullan\u0131c\u0131 i\u00e7in \u00f6nem ve gizlilik arz eden t\u00fcm bilgilere sistem taraf\u0131ndan \u015fifrelenme zorunlulu\u011fu getirilmekte hatta biz yaz\u0131l\u0131mc\u0131lar\u0131n bile eri\u015femeyece\u011fi derecede ilgili veriler \u015fifrelenmi\u015f bir \u015fekilde veritaban\u0131na kaydedilmektedir.<\/p>\n<p>Bu durum her ne kadar kullan\u0131c\u0131 bazl\u0131 bilgi g\u00fcvenlili\u011fini getirsede biryandan da geri d\u00f6n\u00fc\u015f\u00fcm\u00fc engellemektedir. \u015eifrelenmi\u015f bilgilerin, kullan\u0131c\u0131lar taraf\u0131ndan olas\u0131 unutulma durumlar\u0131nda kullan\u0131c\u0131 talebi do\u011frultusunda bile ilgili veri asl\u0131na \u00e7evrilemeyece\u011fi i\u00e7in her ne kadar veritaban\u0131nda \u015fifrelenmi\u015f hali bar\u0131nd\u0131r\u0131lsada anlams\u0131z bir veri arz edecektir. Dolay\u0131s\u0131yla kullan\u0131c\u0131dan \u015fifrelenmek \u00fczere al\u0131nan verilerin geriye d\u00f6n\u00fc\u015fs\u00fcz \u015fekilde \u015fifrelenece\u011fi kullan\u0131c\u0131ya bildirilmesi gerekmektedir.<\/p>\n<p>Velhas\u0131l hemen hemen her mimaride \u015fifreleme algoritmalar\u0131 bulundu\u011fu gibi Node.js&#8217;de de bu yasal i\u015flemi yerine getirecek bcrypt mod\u00fcl\u00fc mevcuttur.<\/p>\n<h3>bcrypt Mod\u00fcl\u00fcn\u00fcn Y\u00fcklenmesi<\/h3>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nnpm install bcryptjs --save\r\n<\/pre>\n<p>komutu arac\u0131l\u0131\u011f\u0131yla ilgili mod\u00fcl\u00fc projenize entegre edebilirsiniz.<\/p>\n<h3>Verilerin \u015eifrelenmesi<\/h3>\n<p>bcrypt mod\u00fcl\u00fc ile verileri \u015fifreleyebilmek i\u00e7in &#8220;hash&#8221; fonksiyonunu kullanmaktay\u0131z.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    const bcrypt = require(&quot;bcryptjs&quot;);\r\n\r\n    bcrypt.hash(&quot;\u015eifrelenecek Veri&quot;, 10, (error, result) =&gt; {\r\n        response.send(result);\r\n    });\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer &#8220;hash&#8221; fonksiyonunun ilk parametresinde \u015fifrelenecek veriyi belirtiyoruz. Callback fonksiyondan gelecek olan &#8220;result&#8221; parametresi ise \u015fifreleme sonucu \u00fcretilen de\u011feri bizlere getirecektir.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme.png\" alt=\"Node.js - bcrypt Mod\u00fcl\u00fc \u0130le Parola \u015eifreleme\" width=\"580\" height=\"103\" class=\"aligncenter size-full wp-image-9337\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme.png 580w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme-300x53.png 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><br \/>\nYukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc incelerseniz e\u011fer ayn\u0131 veriyi birden fazla kez \u015fifreledi\u011fimizde her defas\u0131nda farkl\u0131 bir sonu\u00e7 elde etti\u011fimizi g\u00f6rebilirsiniz. \u0130\u015fte bu sebepten dolay\u0131 \u015fifrelenmi\u015f verilerin tahmin edilebilme ihtimali olduk\u00e7a d\u00fc\u015f\u00fck ve neredeyse imkans\u0131zd\u0131r.<\/p>\n<h3>\u015eifrelenmi\u015f Verilerin Do\u011frulanmas\u0131<\/h3>\n<p>Her ne kadar \u015fifrelenmi\u015f veriyi geri d\u00f6n\u00fc\u015ft\u00fcremesekte, do\u011frulayabilmekteyiz. Bu i\u015flem i\u00e7inde bcrypt mod\u00fcl\u00fcm\u00fcz\u00fcn &#8220;compare&#8221; fonksiyonunu kullanmaktay\u0131z. &#8220;compare&#8221; fonksiyonu elimizdeki \u015fifrelenmi\u015f veri ile has\/ger\u00e7ek\/esas veriyi k\u0131yaslamakta ve sonucu boolean tipte bizlere d\u00f6nd\u00fcrmektedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n    const bcrypt = require(&quot;bcryptjs&quot;);\r\n\r\n    bcrypt.hash(&quot;Gen\u00e7ay&quot;, 10, (error, result) =&gt; {\r\n        bcrypt.compare(&quot;Gen\u00e7ay&quot;, result, (error, data) =&gt; {\r\n            if (data)\r\n                response.send(`&quot;${result}&quot; ile &quot;Gen\u00e7ay&quot; de\u011ferleri ayn\u0131.`);\r\n            else\r\n                response.send(`&quot;${result}&quot; ile &quot;Gen\u00e7ay&quot; de\u011ferleri farkl\u0131.`);\r\n        });\r\n    });\r\n<\/pre>\n<p>Yukar\u0131daki kod blo\u011funu incelerseniz e\u011fer \u015fifrelenmi\u015f veriyi &#8220;compare&#8221; fonksiyonu ile do\u011frulamaktay\u0131z.<br \/>\n<a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme-1.png\" alt=\"Node.js - bcrypt Mod\u00fcl\u00fc \u0130le Parola \u015eifreleme\" width=\"722\" height=\"30\" class=\"aligncenter size-full wp-image-9343\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme-1.png 722w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme-1-300x12.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2018\/09\/Node.js-bcrypt-Mod\u00fcl\u00fc-\u0130le-Parola-\u015eifreleme-1-720x30.png 720w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/><\/a><\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Web platformunda kullan\u0131c\u0131yla etkile\u015fim sonucu g\u00fcvenli\u011fine riayet edilmesi gereken bilgiler mevcuttur. Bu bilgiler; kullan\u0131c\u0131 \u015fifreleri, hesap veya kredi kart\u0131 bilgileri yahut kullan\u0131c\u0131ya dair farkl\u0131 hassasiyet bar\u0131nd\u0131ran mahiyette bilgiler olabilir. Kullan\u0131c\u0131lar g\u00fcvendikleri platformlarla bu&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":8600,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2145],"tags":[2606,2147,2607],"class_list":["post-9332","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-node-js","tag-bcrypt-modulu","tag-node-js","tag-node-js-bcrypt-modulu"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9332","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=9332"}],"version-history":[{"count":10,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9332\/revisions"}],"predecessor-version":[{"id":9344,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/9332\/revisions\/9344"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/8600"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=9332"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=9332"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=9332"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}