Özet - Crypto
- Node.js kursu
- Orta seviye
- Ders 105/116
- 5 dk
createHash, randomBytes ve HMAC'i birleştirerek bir şifreleyici yazarsın.
Özet - Crypto
Bu grupta Node.js'in crypto modülünü öğrendin: createHash ile tek yönlü özet, randomBytes ile güvenli rastgele bayt, createHmac ile anahtarlı imza, createCipheriv ile AES şifreleme. Şimdi hepsini birleştiren bir şifreleyici yazacağız.
Yapı: bir dizeyi createHash ile özetle, randomBytes ile bir tuz üret, createHmac ile imzala. Her aracın çıktısının uzunluğunu yazdırarak doğru çalıştığını doğrularız. Bu, gerçek bir kimlik doğrulama sisteminin temel taşıdır: özet parmak izi, tuz benzersizlik, HMAC imza sağlar. Çıktıları birleştirirken uzunlukları sabit olduğu için deterministik sonuç alırız.
Uygulama Şifreleyici yardımcısı yaz
const crypto = require("node:crypto"); ile içe aktar. const hash = crypto.createHash("sha256").update("merhaba").digest("hex"); ile özet al. const salt = crypto.randomBytes(4).toString("hex"); ile tuz üret. const hmac = crypto.createHmac("sha256", "anahtar").update("veri").digest("hex"); ile imzala. console.log("Hash uzunluğu: " + hash.length), console.log("Tuz uzunluğu: " + salt.length) ve console.log("HMAC uzunluğu: " + hmac.length) ile uzunlukları yazdır.
Başlangıç kodu
// crypto modülünü içe aktar
// buraya yaz
// "merhaba" dizesini özetle
// buraya yaz
// 4 baytlık tuz üret
// buraya yaz
// "veri" dizesini HMAC ile imzala
// buraya yaz
// üç uzunluğu yazdır
// buraya yazÖrnek çözüm
const crypto = require("node:crypto");
const hash = crypto.createHash("sha256").update("merhaba").digest("hex");
const salt = crypto.randomBytes(4).toString("hex");
const hmac = crypto.createHmac("sha256", "anahtar").update("veri").digest("hex");
console.log("Hash uzunluğu: " + hash.length);
console.log("Tuz uzunluğu: " + salt.length);
console.log("HMAC uzunluğu: " + hmac.length);Beklenen çıktı
Hash uzunluğu: 64 Tuz uzunluğu: 8 HMAC uzunluğu: 64
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir parolayı güvenle saklamanın doğru yolu hangisidir?
Parola → hash → sakla- Düz metin olarak saklamak
- Base64 ile kodlayıp saklamak
- Tuz ile hash'leyip saklamak Doğru cevap
- Yalnızca console.log ile yazmak
Açıklama: Tuz ile hash en güvenli saklama yoludur.
2 Aracı amacına eşle
| Kavram | Anlamı |
|---|---|
createHash |
Tek yönlü özet |
randomBytes |
Güvenli rastgele bayt |
createHmac |
Anahtarlı imza |
createCipheriv |
İki yönlü şifreleme |
3 createHash çağrısını tamamla
const hash = crypto.____("sha256").update("merhaba").digest("hex");
const hash = crypto.createHash("sha256").update("merhaba").digest("hex");
Açıklama: createHash sha256 ile özet oluşturur.