araç köşesi

Metinden Hash (Özet) Hesaplama

Yapıştırdığınız metnin SHA-256, SHA-512, SHA-1 ya da MD5 özetini anında hesaplayın

Verileriniz sizde kalır. Dönüşüm tarayıcının içinde yapılır, hiçbir şey sunucuya gitmez.

Nasıl çalışır?

Metni sol panele yapıştırın; özet siz yazarken sağ panelde belirir, düğmeye basmanız gerekmez. Örneğin bir API belgesinde imza için "merhaba" kelimesinin SHA-256 karşılığı isteniyorsa kelimeyi yapıştırmanız yeterlidir: 64 haneli değer anında çıkar. Hesap metnin harflerine değil, metnin UTF-8 bayt karşılığına uygulanır; bu yüzden Türkçe harf içeren bir cümlenin özeti, aynı cümlenin harfleri değiştirilmiş halinden tamamen farklı olur. Beklenen özet alanına elinizdeki değeri yapıştırırsanız araç karşılaştırmayı kendisi yapar ve sonuç satırında eşleşip eşleşmediğini açıkça yazar; büyük-küçük harf farkı, baştaki-sondaki boşluklar ve "sha256:" gibi önekler yok sayılır. Sonuç satırı ayrıca metnin kaç karakter ve kaç bayt olduğunu gösterir — Türkçe metinlerde bu iki sayı birbirinden farklıdır. Hesaplama tamamen tarayıcınızın içinde yapılır; yapıştırdığınız metin hiçbir sunucuya gönderilmez.

Bu araç metin hash hesaplama, sha256 hesaplama, md5 hesaplama aramalarıyla da biliniyor.

Hash (metin özeti) nedir?

Hash, bir metnin baytlarından türetilen sabit uzunlukta bir parmak izidir. Tek kelime de yazsanız yüz sayfalık bir sözleşme de yapıştırsanız SHA-256 hep 64 hanelik bir değer üretir; aynı metin her seferinde aynı değeri, tek harfi değişmiş metin ise tamamen başka bir değeri verir. Bu iki özellik, uzun metinleri baytlarını karşılaştırmadan eşleştirmeyi ve bir metnin sonradan değiştirilip değiştirilmediğini kanıtlamayı mümkün kılar. İşlem tek yönlüdür: özetten metne dönüş yoktur.

SHA-512 nedir?

SHA-512, SHA-2 ailesinin 512 bitlik üyesidir ve 128 onaltılık hane uzunluğunda özet üretir. SHA-256 ile aynı tasarıma dayanır ama 64 bitlik sözcüklerle çalışır; bu yüzden 64 bitlik işlemcilerde çoğu zaman SHA-256'dan daha hızlıdır, 32 bitlik ortamlarda ise tersi geçerlidir. Uygulamada tercih sebebi hız değil uzunluktur: HMAC anahtarı, tohum değeri ya da uzun bir rastgelelik kaynağı üretirken 512 bitlik çıktı fazladan pay bırakır. Dosya doğrulamada SHA-256 hâlâ fiilî standarttır.

MD5 nedir?

MD5, 1992'de tanımlanmış ve 128 bitlik, 32 haneli özet üreten eski bir algoritmadır. Kriptografik güvencesi 2004'ten beri kırıktır: aynı MD5 değerini veren iki farklı içerik dizüstü bilgisayarda üretilebiliyor, dolayısıyla MD5 eşleşmesi içeriğin değiştirilmediğini kanıtlamaz. Buna karşılık kaza sonucu bozulmayı, yarım kopyalanmış bir metni ya da bir aktarım hatasını hâlâ güvenilir biçimde yakalar ve çok sayıda eski sistem hâlâ MD5 yayımlar; bu araçta bulunma sebebi budur.

Metin özeti ile dosya özeti aynı şey mi?

Algoritma aynıdır, girdi farklıdır. Bu sayfa yapıştırdığınız metni önce UTF-8 baytlarına çevirir ve özeti o baytlardan hesaplar; bir dosyanın özeti ise diskteki baytlara doğrudan uygulanır. Sonuç şudur: "merhaba" kelimesini buraya yazmakla, içinde yalnızca "merhaba" yazan bir metin dosyasını özetlemek genellikle farklı değerler verir, çünkü dosyanın sonunda çoğu zaman görünmeyen bir satır sonu karakteri bulunur. İndirdiğiniz bir kurulum dosyasının bütünlüğünü doğrulayacaksanız metni değil dosyanın kendisini özetlemeniz gerekir; bu iş için sitedeki hash üretici sayfası dosyayı olduğu gibi okur ve 1 GB'a kadar dosyayı kabul eder.

Aynı metnin iki farklı özeti çıkıyorsa sebebi neredeyse hep aynıdır

Özet, gördüğünüz harflere değil metnin baytlarına uygulanır. Gözle ayırt edemediğiniz üç fark sonucu tamamen değiştirir: metnin sonundaki görünmez satır sonu karakteri, Windows'un satır sonunu iki karakterle (CR LF) yazması ve metnin başına yapışmış BOM işareti. Bir dosyadan kopyaladığınız metin çoğu zaman sondaki satır sonunu da birlikte getirir; komut satırında aldığınız özetle buradaki değer uyuşmuyorsa önce buna bakın.

İkinci kaynak kodlamadır. Aynı cümle UTF-8 ile başka, Windows-1254 ile başka bayt dizisi üretir; özet de doğal olarak başka çıkar. Bu araç her zaman UTF-8 kullanır, çünkü web'in ve modern sistemlerin varsayılanı budur. Eski bir veritabanından gelen bir değeri doğrulamaya çalışıyor ve tutturamıyorsanız, karşı tarafın hangi kodlamayla çalıştığını sorun.

Parolaları bu özetlerle saklamayın

Bir sitenin parolaları MD5 ya da SHA-256 özetiyle saklaması yıllarca yaygın bir alışkanlıktı ve bugün açık bir güvenlik hatasıdır. Sebebi bu algoritmaların hızlı olmasıdır: hız burada erdem değil kusurdur, çünkü sızan bir özet listesini elinde tutan saldırgan saniyede milyarlarca deneme yapabilir. Parola saklamak için bcrypt, scrypt ya da Argon2 gibi bilinçli olarak yavaşlatılmış ve her kayda ayrı tuz ekleyen algoritmalar kullanılır.

Bu araç bir metnin parmak izini çıkarmak içindir: bir imzayı doğrulamak, iki uzun metnin birebir aynı olup olmadığını tek bakışta görmek, bir belgenin sonradan değiştirilmediğini kanıtlamak, bir API'nin istediği özet değerini üretmek. Parolanızı buraya yapıştırmanızda teknik bir sakınca yoktur — metin cihazınızdan çıkmaz — ama çıkan özeti bir kimlik doğrulama sisteminde saklamayı planlıyorsanız yanlış yoldasınız.

  • Uygun: imza doğrulama, metin karşılaştırma, değişmezlik kanıtı, API'nin istediği özet
  • Uygun değil: parola saklama, veri gizleme, şifreleme yerine kullanma

Sık sorulanlar

Bir metnin SHA-256 değeri nasıl hesaplanır?

Metni sol panele yapıştırın ve algoritma olarak SHA-256'yı bırakın; 64 haneli özet sağ panelde anında görünür. Hesap tarayıcınızın yerleşik kripto motoruyla yapılır, metin hiçbir yere gönderilmez.

Hash'ten metni geri elde edebilir miyim?

Hayır. Özet tek yönlüdür; farklı uzunluktaki her metin sabit uzunlukta bir değere indirgenir ve bu işlemin tersi yoktur. İnternette "hash çözme" diye sunulan hizmetler aslında hazır bir sözlükteki milyonlarca kelimenin özetini önceden hesaplayıp eşleştirir; kısa ve yaygın metinlerde işe yarar, uzun bir cümlede yaramaz.

İki metnin aynı olup olmadığını özetle nasıl anlarım?

İki metnin özetini ayrı ayrı alıp karşılaştırın; ya da birinin özetini Beklenen özet alanına yapıştırıp öbür metni panele koyun. Özetler aynıysa metinler karakteri karakterine aynıdır. Tek hane bile farklıysa aralarında en az bir bayt fark var demektir — hangi satırda olduğunu görmek isterseniz metin karşılaştırma aracını kullanın.

MD5 hâlâ kullanılabilir mi?

Yalnız eşleşme kontrolü için. Aynı MD5 değerini taşıyan iki farklı içerik kasıtlı olarak üretilebildiği için MD5 bir şeyin değiştirilmediğini kanıtlayamaz. Ama karşı taraf size MD5 değeri verdiyse doğrulamak meşrudur; yeni bir değer üretiyorsanız SHA-256 seçin.