CodeBlanks Logo Icon CodeBlanks

Hashing

java.security.MessageDigest ile hash öğrenirsin.

Hashing (MessageDigest)

MessageDigest, bir girdiyi sabit uzunlukta özetler. SHA-256 yaygın bir algoritmadır; 32 baytlık özet üretir. Aynı girdi her zaman aynı özeti verir.

Örnek: val md = MessageDigest.getInstance("SHA-256"); val bytes = md.digest("abc".toByteArray()). bytes.size ifadesi 32 döndürür. digest girdiyi özetler; aynı girdi deterministik sonuç verir. Hash, parola saklama ve veri bütünlüğü için kullanılır.

toByteArray ve digest

Hash için girdi önce toByteArray() ile bayt dizisine çevrilir. digest hem girdiyi ekler hem özeti döndürür. update ile parça parça ekleme yapılabilir.

Örnek: md.update("parça1".toByteArray()); md.update("parça2".toByteArray()); val bytes = md.digest(). Bu, "parça1parça2" girdisinin özetini verir. Bu kalıp, büyük dosyaları parça parça özetlemek için kullanılır.

Uygulama SHA-256 ile hash bayt boyutu

main içinde val md = MessageDigest.getInstance("SHA-256") al, val bytes = md.digest("abc".toByteArray()) ile özetle ve println(bytes.size) yazdır.

Başlangıç kodu

Main.kt
import java.security.MessageDigest

// main'de SHA-256 ile abc'yi özetle
// bayt boyutunu yazdır

Örnek çözüm

Main.kt
import java.security.MessageDigest

fun main() {
    val md = MessageDigest.getInstance("SHA-256")
    val bytes = md.digest("abc".toByteArray())
    println(bytes.size)
}

Beklenen çıktı

32

Soru ve cevaplar

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

1 MessageDigest.getInstance("SHA-256") kaç baytlık özet üretir?

  • 128
  • 16
  • 64
  • 32 Doğru cevap

Açıklama: SHA-256 32 bayt (256 bit) özet üretir.

2 MessageDigest getInstance çağrısını tamamla

Soru
val md = MessageDigest.____("SHA-256")
Cevap
val md = MessageDigest.getInstance("SHA-256")

Açıklama: getInstance ile algoritma seçilir.

3 Hash parçalarını eşle

Kavram Anlamı
MessageDigest Hash nesnesi
getInstance("SHA-256") Algoritma seçimi
digest("abc".toByteArray()) Özetleme
32 Bayt boyutu

İleri seviye bölümündeki tüm dersler