Expressjs’te Password Hash

Selim KURT
2 min readMar 11, 2024

--

Web geliştirmenin dünyasında güvenlik son derece önemlidir. Her gün evrim geçiren siber tehditlerle, kullanıcı verilerini korumak herhangi bir uygulama oluşturmanın vazgeçilmez bir parçası olmuştur. Bu konuda temel bir konu parolaları güvence altına almaktır.Bu yazımızda , Expressjs kullanarak parolaları hashlemeyi öğreneceğiz.

Neden Paralolarımızı Hashleriz ?

Uygulamanızın veritabanının tehlikeye girdiği bir senaryomuz olsun. Doğru hashleme olmadan, saldırganlar kullanıcıların parolalarına açık bir şekilde erişebilirler. Hashleme, bu riski azaltarak, hashlenmiş parolalara erişim sağlansa bile, bunların kolayca çözümlenemeyeceğini sağlamaktadır.

Expressjs ile beraber Paralo Hashlemek

Bu yazımızda “bcrypt ” modüle paketini kullanacağız.bcrypt kurulumuyla beraber başlayalım.

npm install bcrypt

bcrypt modülünü projemize import edelim.

const bcrypt = require('bcrypt');

Kullanıcı parola oluşturduğunda veya güncellediğinde, bcrypt hash fonksiyonunu kullanarak paraloyı hashleyelim.

const saltRounds = 10; // Hash'in karmaşıklığını belirler
const düzMetinParola = 'kullanıcı_parolası';

bcrypt.hash(düzMetinParola, saltRounds, (hata, hash) => {
// Hash'i veritabanınıza kaydedin
if (hata) throw hata;
console.log('Hashlenmiş Parola:', hash);
});

Kullanıcıları kimlik doğrularken, veritabanında saklanan hashlenmiş parolayı şifrelenmemiş paralo ile karşılaştıralım.

const hashlenmişParola = 'veritabanından_gelen_hashlenmiş_parola';

bcrypt.compare(düzMetinParola, hashlenmişParola, (hata, sonuç) => {
if (hata) throw hata;
if (sonuç) {
console.log('Parola Eşleşti!');
} else {
console.log('Geçersiz Parola!');
}
});

Expressjs Kullanmanın Parola Hashleme Avantajları

Expressjs, parola hashleme uygulamak için belirli avantajlar sunar:

  • Basitlik: Expressjs özgül sözdizimi sayesinde, parolaları hashleme süreci oldukça basittir.
  • Güvenlik: bcrypt gibi tanınmış kriptografik kütüphaneleri kullanarak, Expressjs güçlü güvenlik önlemleri almamıza imkan tanır.
  • Ölçeklenebilirlik: Uygulamalarımız büyüdükçe, Expressjs güvenliği risk almadan ölçeklendirebilirz.

Okuduğunuz için teşekkürler

Her zaman gelişmek için yer olduğunu anlıyorum. Lütfen düşüncelerinizi paylaşmaktan çekinmeyin.

--

--

Selim KURT
Selim KURT

Written by Selim KURT

Software Developer - Mobile & Web Developer #react #reactnative #nextjs #frontend #digitaltransformation #javascript

No responses yet