Encrypt data with bcrypt package | Flutter, Node.js, MongoDB

Kadir Bekar
pitonyazilim
Published in
2 min readNov 15, 2020

Merhabalar. Bu yazının konusu; sisteme üye olmaya çalışan kullanıcının şifresini bcrypt paketi ile şifreleyip ondan sonra veri tabanına kayıt edeceğiz bu sayede veri tabanına yetkisi olmayan bir kişi erişirse kullanıcıların şifrelerini direkt olarak göremeyecektir.

Geçen hafta oluşturduğum ve yazı olarak da anlatmaya çalıştığım projeye devam ediyorum.

Öncelikle projede nodejs dizinine gidiyorum ve terminale “ npm i bcrypt ” yazarak paketi projeme dahil ediyorum.

Paket nasıl çalışıyor, neden bu paketi kullanıyorum gibi konulara değinmek için birkaç örnek kod paylaşıyorum daha sonra projede gerekli yerlere kodlarımızı ekleyeceğiz.

1- Bir veriyi şifrelemek için hash metodunu kullandım. Metot iki tane parametre alıyor. İlk parametre şifrelemek istediğim veri, ikinci parametre şifrelenecek olan verinin uzunluğu.

2- Paket tek taraflı çalışıyor yani ilk seferde gönderdiğim veriyi şifreledikten sonra aynı şekilde çözümleyemiyorum sadece şifrelenmiş veri ile ilk seferde gönderdiğim veriyi kıyaslama yapabiliyorum.

3- İki verinin kıyaslamasını yapabilmek için compare metodunu kullanıyoruz. Metot iki tane parametre alıyor. İlk parametre olarak şifrelenmeden önce gönderdiğim veriyi, ikinci parametre olarak ise şifrelediğim veriyi metoda veriyorum. İşlem sonucunda boolean bir değer dönüyor. Loglardan görüleceği üzere parametreler doğru bir şekilde gönderildiği zaman true değerini aldık.

Paketin sevdiğim bir özelliği ise fark ettiyseniz iki kere aynı veriyi şifreledik fakat iki farklı sonuç aldık. Bu özellik sayesinde farklı kullanıcılar aynı şifreleri girmiş olsa bile farklı sonuçlar veri tabanına kayıt edilecektir.

Daha farklı örnekler için tabi ki paketi inceleyebilirsiniz. Şimdi ise projede gerekli yerlere kodlarımızı ekleyelim.

Bu yazı için anlatacaklarım bu kadardı, umarım faydalı bir içerik olmuştur. Herhangi bir geri bildirimde bulunursanız çok memnun olurum. Mutlu, umutlu günler dilerim.

--

--