Menu
CoddyTech

Parola Anahtarı Türetme

Coddy'nin Node.js Journey'sinin Kimlik Doğrulama ve Güvenlik bölümünün bir parçası. Ders 2 / 24.

Bir parola anahtarı, parola ve tuz kullanılarak hesaplanır. Kodlamadan farklı olarak bu hesaplama, tersine çevrilmek üzere tasarlanmamıştır. Scrypt, her deneme için işlem gerektirerek parola tahminlerini maliyetli hâle getirir. Aynı parola, tuz ve anahtar uzunluğu da dâhil türetme ayarları kullanıldığında anahtar yeniden üretilebilir. Türetilen bu anahtara genellikle parola özeti denir.

const key = await scryptAsync('invite 4821', 'example-only', 16);
return key.toString('hex');

Üçüncü argüman, bayt cinsinden anahtar uzunluğudur. Sağlanan yardımcı işlev, Node'un geri çağırım tabanlı scrypt işlevini promise döndüren bir işleve dönüştürmek için promisify kullanır. Bir dosya okuma işlemi gibi bunu da await ile kullanabilirsiniz. Bu alıştırmadaki sabit tuz, sonuçları karşılaştırmanızı sağlar; gerçek parola depolamada yeni ve rastgele bir tuz kullanılır.

Bir sonraki alıştırmada, yeni bir parola depolanırken gereken yeni rastgele tuz oluşturulur.

challenge icon

Görev

Kolay

Bu küçük bir alıştırma projesidir. Kurulumu hazırdır; yalnızca exercise.js dosyasını düzenle.

Fonksiyonu tamamla: verilen parola ve tuzdan 32 baytlık bir anahtar türet, ardından anahtarın onaltılık metnini key içinde döndür. {"password":"practice","salt":"fixed-for-this-exercise"} değerini /result adresine iki kez POST et: aynı 64 karakterlik anahtar görünür. Girdilerden birini değiştir, anahtar da değişir.

Kendin dene

import { scryptAsync } from './crypto.js';
export async function exercise({ password, salt }) {
    return { key: password };
}

Kimlik Doğrulama ve Güvenlik bölümündeki tüm dersler

Kendi başına pratik yap: Express playground