CodeBlanks Logo Icon CodeBlanks

Özet - Crypto

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

index.js
// 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

index.js
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?

index.js
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

Soru
const hash = crypto.____("sha256").update("merhaba").digest("hex");
Cevap
const hash = crypto.createHash("sha256").update("merhaba").digest("hex");

Açıklama: createHash sha256 ile özet oluşturur.

Orta seviye bölümündeki tüm dersler