Parolaları güvenli bir şekilde saklamanın en iyi yollarından biri, onları tuzlamak ve hash etmektir. Tuzlama ve karma, düz bir parolayı tersine çevrilmesi zor benzersiz bir değere dönüştürür. bcrypt kitaplığı, çok az çabayla Node.js'de parolaları karma ve tuzlamanıza olanak tanır.
Şifre Hash Nedir?
Şifre karma benzersiz bir değer oluşturmak için bir karma algoritmadan düz metin şifresi geçirmek anlamına gelir. Bazı karma algoritma örnekleri bcrypt, scrypt ve SHA'dır. Hash'in dezavantajı, tahmin edilebilir olmasıdır.
Aynı girişi bir karma algoritmaya her ilettiğinizde, aynı çıktıyı üretecektir. Karma parolaya erişimi olan bir bilgisayar korsanı, orijinal parolayı elde etmek için şifrelemeyi tersine çevirebilir. gibi teknikleri kullanabilirler. kaba kuvvet saldırıları veya gökkuşağı tabloları. Tuzlama burada devreye giriyor.
Şifre Tuzlama Nedir?
Parola tuzlama hash yapmadan önce bir parolaya rastgele bir dize (tuz) ekler. Bu şekilde üretilen hash her seferinde farklı olacaktır. Bir bilgisayar korsanı, karma parolayı elde etse bile, onu oluşturan orijinal parolayı keşfetmeleri pratik değildir.
Bir Parolayı Karıştırmak ve Doğrulamak için bcrypt Nasıl Kullanılır
şifreli parola tuzlama ve karma işlemlerini basitleştiren bir npm modülüdür.
Adım 1: bcrypt'i kurun
npm'yi kullanma:
npm Yüklemek şifreli
İplik kullanma:
iplik eklemek bcrypt
2. Adım: bcrypt'i içe aktarın
const şifre = gerekmek("bcrypt")
Adım 3: Tuz Oluşturun
Tuzu oluşturmak için, bcrypt.genTuz() yöntem. Bu yöntem, bir parolanın hash edilmesi için geçen süreyi belirleyen maliyet faktörü olan bir tamsayı değeri kabul eder. Maliyet faktörü ne kadar yüksek olursa, algoritma o kadar fazla zaman alır ve kaba kuvvet kullanarak hash'i tersine çevirmek o kadar zor olur. İyi bir değer, parolayı güvence altına alacak kadar yüksek, ancak süreci yavaşlatmayacak kadar da düşük olmalıdır. Genellikle 5 ile 15 arasında değişir. Bu dersimizde 10 kullanacağız.
bcrypt.genSalt (10, (hata, tuz) => {
// kullanmaktuziledoğramakparola
})
4. Adım: Parolayı Hashleyin
Düz parolayı ve oluşturulan tuzu doğramak() yöntem:
bcrypt.genSalt (10, (hata, tuz) => {
bcrypt.hash (düz metinParola, tuz, işlev(hata, karma) {
// Hash'i veritabanında depola
});
})
Karmayı oluşturduktan sonra, veritabanında saklayın. Bunu, bir parolayı doğrulamak ve oturum açmaya çalışan bir kullanıcının kimliğini doğrulamak için kullanacaksınız.
Tuz ve hash'i ayrı ayrı oluşturmak yerine, tek bir işlev kullanarak tuzu ve hash'i otomatik olarak da oluşturabilirsiniz.
bcrypt.hash (düz metinParolası, 10, işlev(hata, karma) {
// hash'i veritabanında sakla
});
Adım 5: bcrypt Kullanarak Parolaları Karşılaştırın
İle kullanıcıların kimliğini doğrula, sağladıkları şifreyi veritabanındaki şifreyle karşılaştırmanız gerekecek. bcrypt.compare() düz metin parolasını ve sakladığınız hash'i geri arama işleviyle birlikte kabul eder. Bu geri arama, oluşan hataları ve karşılaştırmanın genel sonucunu içeren bir nesne sağlar. Parola karma ile eşleşirse sonuç doğrudur.
bcrypt.compare (plaintextPassword, hash, işlev(hata, sonuç) {
if (sonuç) {
// şifre geçerli
}
});
Async/Await'i kullanma
Aşağıdaki gibi async/await kullanarak şifreleri hash edebilir ve doğrulayabilirsiniz.
zaman uyumsuzişlevhashŞifre(düz metinŞifre) {
const karma = beklemek bcrypt.hash (düz metinParolası, 10);
// Hash'i veritabanında depola
}
// şifreyi karşılaştır
zaman uyumsuzişlevkarşılaştırŞifre(düz metinŞifre, karma) {
const sonuç = beklemek bcrypt.compare (plaintextPassword, hash);
dönüş sonuç;
}
Sözleri Kullanmak
bcrypt kütüphanesi ayrıca vaatlerin kullanımını da destekler.
işlevhashŞifre(düz metinŞifre) {
şifreli.doğramak(düz metinŞifre, 10)
.then (karma => {
// Hash'i veritabanında depola
})
.tutmak(hata => {
konsol.log (hata)
})
}
işlevkarşılaştırŞifre(düz metinŞifre, karma) {
bcyrpt.karşılaştırmak(düz metinŞifre, doğramak)
.then (sonuç => {
dönüş sonuç
})
.tutmak(hata => {
konsol.log (hata)
})
}
Hashing ve Tuzlama Kolay Kazançtır
Node.js'de parolaları toplamak ve doğrulamak için bcrypt kitaplığını kullanabilirsiniz. Şifreleri hash etmek, siber suçluların hassas verilere veya hizmetlere erişmek için bunları kullanma şansını en aza indirir. Karma parolalarınızı tuzlamak onları daha da güvenli hale getirir. Karma işleminin dışında, ek bir güvenlik önlemi olarak her zaman parola gücünü doğrulayın.
Şifreleri Hacklemek İçin Kullanılan En Yaygın 8 Numara
Sonrakini Oku
İlgili konular
- Programlama
- Güvenlik
- Programlama
- JavaScript
- Güvenlik
- algoritmalar
Yazar hakkında
Mary Gathoni, yalnızca bilgilendirici değil, aynı zamanda ilgi çekici teknik içerik oluşturma tutkusuna sahip bir yazılım geliştiricisidir. Kod yazmadığı veya yazmadığı zamanlarda arkadaşlarıyla takılmaktan ve dışarıda olmaktan hoşlanıyor.
Haber bültenimize abone ol
Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!
Abone olmak için buraya tıklayın