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.
Görev
KolayBu 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