Hashing
- Kotlin kursu
- İleri seviye
- Ders 73/83
- 5 dk
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
import java.security.MessageDigest
// main'de SHA-256 ile abc'yi özetle
// bayt boyutunu yazdırÖrnek çözüm
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
val md = MessageDigest.____("SHA-256")
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 |