CodeBlanks Logo Icon CodeBlanks

createHash

crypto.createHash ile hash oluşturmayı öğrenirsin.

createHash

crypto.createHash(algoritma) bir özet oluşturucu yaratır. update(veri) ile veriyi ekler, digest(biçim) ile özeti alırsın. Zincirleme (chaining) yazımı yaygındır.

Örnek: crypto.createHash("sha256").update("merhaba").digest("hex"). "sha256" algoritma adıdır; "hex" çıktı biçimidir (onaltılık). Diğer biçimler: "base64" daha kısa dize verir; "latin1" daha az kullanılır. update() birden çok kez çağrılabilir; veriler birleştirilir. digest() çağrıldıktan sonra oluşturucu kullanılamaz. SHA-256 çıktısı her zaman 64 hex karakterdir (256 bit = 32 bayt). Parola saklamak için sha256 tek başına yeterli değildir; tuz (salt) ve yavaş algoritmalar gerekir.

update ve digest

update() veriyi parça parça ekleyebilir. Büyük dosyalar için akış (stream) ile veri beslersin; belleği az kullanırsın. digest() özeti sonlandırır ve döner.

Örnek: const h = crypto.createHash("sha256"); h.update("parca1"); h.update("parca2"); h.digest("hex");. Bu, update("parca1parca2") ile aynı özeti verir; çünkü veriler birleştirilir. digest("hex") onaltılık dize; digest("base64") daha kısa dize verir. digest()'i çağırdıktan sonra update() hata fırlatır; oluşturucu tek kullanımlıktır. Aynı veriyi tekrar hashlemek için yeni bir createHash çağrısı gerekir. Bu yüzden zincirleme yazım pratiktir: tek satırda tüm adımları bitirirsin.

Uygulama Bir dizeyi SHA-256 ile özetle

const crypto = require("node:crypto"); ile içe aktar. const hash = crypto.createHash("sha256").update("merhaba").digest("hex"); ile özet al. console.log(hash.slice(0, 16)) ile ilk 16 karakteri yazdır.

Başlangıç kodu

index.js
// crypto modülünü içe aktar
// buraya yaz

// "merhaba" dizesini SHA-256 ile özetle
// buraya yaz

// ilk 16 karakteri yazdır
// buraya yaz

Örnek çözüm

index.js
const crypto = require("node:crypto");
const hash = crypto.createHash("sha256").update("merhaba").digest("hex");
console.log(hash.slice(0, 16));

Beklenen çıktı

4c6bcdd55f3153e1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 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şturucu yaratır.

2 Adımı işlevine eşle

Kavram Anlamı
createHash Oluşturucu yaratır
update Veriyi ekler
digest Özeti bitirir
"hex" Onaltılık biçim

3 digest("hex") ne tür bir değer döndürür?

index.js
crypto.createHash("sha256").update("x").digest("hex")
  • Onaltılık dize Doğru cevap
  • İkili (binary) buffer
  • Sayı
  • Date nesnesi

Açıklama: hex biçimi onaltılık dize verir.

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