Dosya ve metin için hash hesaplama
Bu araç, seçtiğiniz dosyaların ya da yazdığınız metnin MD5, SHA-1, SHA-256, SHA-384 ve SHA-512 hash değerlerini tarayıcınızda hesaplar ve elinizdeki değerle karşılaştırır. Dosyalar hiçbir sunucuya gönderilmez.
Araç yükleniyor… Bu yazı kaybolmadıysa tarayıcınız aracı çalıştıramıyor olabilir; güncel bir tarayıcıyla deneyin ya da aşağıdaki komut satırı yöntemlerini kullanın.
0 karakter, 0 bayt (UTF-8)
Dosyalarınız bu sayfadan dışarı gönderilmez: okuma ve hesaplama tarayıcının içinde, bu cihazda yapılır. Sayfa açıldıktan sonra internet bağlantısını kesip de kullanabilirsiniz.
Nasıl kullanılır?
- Dosya seçiliyken dosyaları kutuya sürükleyin ya da kutuya tıklayıp seçin. Birden fazla dosya sırayla işlenir; her biri için ad, bayt cinsinden boyut ve seçili algoritmaların değeri görünür.
- Elinizde bir değer varsa (tutanaktaki, rapordaki ya da indirme sayfasındaki) Beklenen hash değeri alanına yapıştırın. Algoritma uzunluktan anlaşılır: 32 karakter MD5, 40 SHA-1, 64 SHA-256, 96 SHA-384, 128 SHA-512. Büyük harf, boşluk,
SHA256:gibi etiketler vesha256sumçıktısındaki dosya adı sorun olmaz. Tutanakta MD5 ve SHA-1 gibi birden fazla değer varsa hepsini birlikte yapıştırın; araç her birini kendi algoritmasıyla karşılaştırır ve biri tutup diğeri tutmazsa uyarır. - İki kopyanın aynı olup olmadığını görmek için İki dosyayı karşılaştır seçeneğini kullanın. Sonuç, gerekçesiyle birlikte “Aynı” ya da “Farklı” olarak yazılır.
- Tüm sonuçları kopyala dosya adını, boyutu, değerleri ve her dosyanın hesaplandığı saati düz metin olarak panoya alır. Saat, bu cihazın saatidir.
Hash değeri neyi gösterir?
Hash değeri, bir dosyanın ya da metnin baytlarından hesaplanan, sabit uzunlukta bir özettir (message digest). Aynı baytlar her seferinde aynı değeri verir; tek bir bit değişirse değer bambaşka olur. Değer içerikten hesaplanır: dosya adı, klasör ve işletim sisteminin tuttuğu tarihler hesaba girmez. Buna karşılık bir fotoğrafın içine yazılmış EXIF bilgileri dosyanın parçasıdır, onları düzenlemek hash'i değiştirir. Konunun delil bütünlüğü tarafını hash değeri ve dijital delil bütünlüğü yazımızda ayrıntılı anlattık.
İşe yarar bir ayrıntı: SHA-256 değeri e3b0c442…7852b855, MD5 değeri d41d8cd9…ecf8427e olan dosya boştur (0 bayt). Bir raporda bu değerleri görürseniz yanlış dosya seçilmiş ya da kopyalama yarıda kalmış olabilir.
Adli raporlarda neden SHA-256 tercih edilir?
Adli raporlarda SHA-256 tercih edilir, çünkü MD5 ve SHA-1 için aynı değeri veren iki farklı dosya üretmek (çakışma, collision) pratikte gösterildi; SHA-256 için bugün bilinen böyle bir yöntem yok.
| Algoritma | Uzunluk | Çakışma durumu |
|---|---|---|
| MD5 | 128 bit, 32 karakter | İlk çakışmalar 2004'te yayımlandı. RFC 6151, sıradan bir dizüstü bilgisayarda yaklaşık bir dakikada çakışma bulunabildiğini aktarır. |
| SHA-1 | 160 bit, 40 karakter | İlk gerçek çakışma 2017'de iki farklı PDF ile gösterildi. NIST, SHA-1'in 31 Aralık 2030'a kadar kullanımdan kalkmasını istiyor. |
| SHA-256 | 256 bit, 64 karakter | Pratik bir çakışma bilinmiyor. |
| SHA-384, SHA-512 | 384 / 512 bit, 96 / 128 karakter | Pratik bir çakışma bilinmiyor; raporlarda daha seyrek görülür. |
Çakışmanın ne anlama geldiğini doğru okumak gerekir. Gösterilen saldırılar, baştan birlikte hazırlanan iki dosyanın aynı değeri vermesini sağlar. Zaten var olan bir dosyanın değerine uyan ikinci bir dosya üretmek (ikinci ön görüntü, second preimage) ise bugün bilinen yöntemlerle MD5 için bile pratikte mümkün değil. Bu yüzden eski bir tutanaktaki MD5 değeri kendiliğinden anlamsızlaşmaz, ama tartışmaya kapı aralar. Biz incelemelerde SHA-256'yı esas alırız; kaynakta MD5 ya da SHA-1 hesaplanmışsa onları da karşılaştırma için yazarız. Karşılaştırma modunda MD5 aynı, SHA-256 farklı çıkarsa araç bunu ayrıca uyarır, çünkü bu tablo kendiliğinden oluşmaz.
Eşleşen hash neyi kanıtlar, neyi kanıtlamaz?
Eşleşme, elinizdeki dosyanın, değeri hesaplanmış kopyayla bit bit aynı olduğunu gösterir. Fazlasını göstermez:
- Dosyayı kimin oluşturduğunu ya da değiştirdiğini söylemez.
- Ne zaman oluşturulduğunu söylemez. Hash'in içinde zaman bilgisi yoktur; değerin hangi tarihte kayda geçtiği tutanak ya da güvenilir bir zaman damgası gibi ayrı bir kayıtla gösterilir.
- İçeriğin doğru olduğunu söylemez. Sahte bir belge de kendi hash'iyle birebir eşleşir.
- Kopya kaynağın tamamı değilse, eşleşme yalnızca o kopya için geçerlidir.
Eşleşmeme de yalnızca baytların farklı olduğunu söyler, nedenini söylemez. Bir eşleşmenin ya da eşleşmemenin davada ne ağırlık taşıyacağı teknik değil hukuki bir sorudur; onu avukat ve mahkeme değerlendirir.
Aynı değeri başka bir araçla doğrulamak
Önemli bir dosyada sonucu ikinci, bağımsız bir araçla doğrulamak iyi bir alışkanlıktır. İşletim sistemlerinin kendi komutları aynı değeri vermelidir:
| Sistem | Komut |
|---|---|
| Windows (PowerShell) | Get-FileHash -Algorithm SHA256 .\dosya.pdf |
| Windows (Komut İstemi) | certutil -hashfile dosya.pdf SHA256 |
| macOS | shasum -a 256 dosya.pdf ya da md5 dosya.pdf |
| Linux | sha256sum dosya.pdf |
Metni komut satırında hashlerken echo yerine printf '%s' 'metin' | shasum -a 256 kullanın; echo sona satır sonu ekler ve değer bu araçtakiyle tutmaz.
Sınırlılıklar
- Büyük dosyalar. 128 MiB'a kadar olan dosyalarda SHA değerleri tarayıcının yerleşik Web Crypto arayüzüyle hesaplanır. Daha büyük dosyalar belleğe alınmadan 4 MiB'lık parçalar hâlinde okunur ve her algoritma ayrı bir iş parçacığında (Web Worker) çalışır. Birkaç GB'lık bir dosya cihaza göre birkaç dakika sürebilir; yalnızca SHA-256'yı seçmek süreyi kısaltır. Yüzlerce GB'lık imajlar için komut satırı araçları daha uygundur.
- Klasörler ve imaj biçimleri. Klasör hashlenmez, içindeki dosyaları seçin. E01 gibi kapsayıcı imajlarda dosyanın kendi hash'i, içindeki diskin tutanağa yazılan hash'iyle aynı değildir.
- Telefonda galeriden seçilen dosyalar. Fotoğraf ya da video galeriden seçilirse işletim sistemi tarayıcıya dönüştürülmüş bir kopya verebilir: iPhone'da HEIC fotoğraf JPEG'e çevrilebilir, video sıkıştırılabilir. Bu kopyanın hash'i özgün dosyanınkiyle tutmaz; özgün dosya için iPhone'da Dosyalar uygulamasını, Android'de dosya yöneticisini kullanın.
- Metin. Metin UTF-8 olarak, satır sonları LF olarak hashlenir. Araç sonda satır sonu, baştaki ya da sondaki boşluk, bölünemez boşluk, görünmeyen karakter ve ayrışık Unicode karakter gördüğünde not düşer.
- Okuma sırasında değişen dosya. Dosya hesaplama sürerken değiştirilir ya da taşınırsa çoğu tarayıcı okumayı keser ve araç hata gösterir, ama her tarayıcı bunu fark etmez. Hesaplama bitene kadar dosyaya dokunmayın.
Bu araç var olan bir kopyayı kontrol etmek içindir. Bir diskin ya da telefonun imajının alınması, hash'in o anda tutanağa geçmesi ve delil zincirinin kurulması ayrı bir iştir; bilgisayar ve dijital materyal incelemesi sayfamızda bu süreci anlattık. Olaydan hemen sonra neye dokunmamak gerektiği için dijital delilin nasıl korunacağı yazımıza bakabilirsiniz.
Gizlilik
Araç tamamen tarayıcıda çalışır. Dosya ya da metin hiçbir sunucuya gönderilmez, sayfada ölçüm ya da reklam kodu yoktur, sonuçlar tarayıcı deposuna yazılmaz ve sekmeyi kapattığınızda kaybolur. MD5 tarayıcılarda hazır bulunmadığından bu sayfanın kendi kodunda uygulanmıştır; 128 MiB'tan büyük dosyalarda SHA değerleri de aynı kodla, yine cihazınızda hesaplanır.
Sık sorulan sorular
Dosyanın adını değiştirmek hash değerini değiştirir mi?
Hayır. Hash yalnızca dosyanın içindeki baytlardan hesaplanır; dosya adı, bulunduğu klasör ve işletim sisteminin tuttuğu oluşturma ya da değiştirme tarihleri hesaba girmez. Dosyanın içine yazılan bilgiler ise içeriğin parçasıdır: bir fotoğrafın EXIF tarihini düzeltmek, bir PDF'i yeniden kaydetmek ya da Word belgesini açıp kaydetmek, ekranda hiçbir şey değişmese bile değeri değiştirir.
Aynı metnin hash'i başka bir araçta neden farklı çıkıyor?
Çoğu zaman iki araç aynı baytları hashlemiyordur. Sık görülen nedenler: metnin sonundaki satır sonu (komut satırında echo bunu kendiliğinden ekler), Windows'un CRLF satır sonları, UTF-8 yerine Windows-1254 kodlaması ve başta ya da sonda kalan boşluklar. Türkçe harfler kodlamaya en duyarlı kısımdır: “ş” UTF-8'de iki bayt, Windows-1254'te tek bayttır. Bu araç metni her zaman UTF-8 ve LF satır sonlarıyla hesaplar.
Hash değerleri eşleşmiyorsa dosya değiştirilmiş demek midir?
Baytların farklı olduğu kesindir, ama bu tek başına kasıtlı bir değişiklik göstermez. Mesajlaşma uygulamaları fotoğraf ve videoları yeniden sıkıştırır, bazı e-posta sistemleri ekleri dönüştürür, bulut hizmetleri belgeleri kendi biçimine çevirebilir, yarım kalan bir indirme de farklı değer verir. Önce doğru dosyayı doğru algoritmayla karşılaştırdığınızdan emin olun, sonra dosyanın hangi yollardan geçtiğini kayda geçirin.
Dosyalarım bir sunucuya yükleniyor mu?
Hayır. Dosya, tarayıcının dosya arayüzüyle bu cihazda okunur ve hash tarayıcının içinde hesaplanır; sayfa dosyayı ya da metni hiçbir yere göndermez, sonuçları da saklamaz. Bunu kendiniz görebilirsiniz: geliştirici araçlarında Ağ (Network) sekmesini açıp bir dosya hashleyin, sunucuya giden yeni bir istek oluşmaz. Büyük dosyalarda görünen blob: satırları, aracın cihaz içinde açtığı iş parçacıklarıdır. İnternet bağlantısını kesseniz de araç çalışır.
Bir disk imajının hash'ini bu araçla doğrulayabilir miyim?
İmaj tek parça ham bir dosyaysa (.dd, .raw, .img) ve tarayıcı dosyayı okuyabiliyorsa evet; birkaç GB'lık dosyalar cihaza göre birkaç dakika sürer. E01 gibi kapsayıcı biçimlerde ve parçalara bölünmüş imajlarda ise dosyanın kendi hash'i, imajı alınan diskin hash'iyle aynı değildir. Tutanaktaki değeri doğrulamak için imajı açabilen bir adli bilişim aracı gerekir.
Büyük harfle yazılmış bir hash değeri farklı mıdır?
Hayır. Hash değerleri onaltılık (hexadecimal) sayı olarak yazılır ve A ile a aynı rakamdır. Windows PowerShell'in Get-FileHash komutu büyük harf, macOS ve Linux komutları küçük harf kullanır; bazı raporlar da değeri ikişer karakterlik gruplar hâlinde boşluklu yazar. Araç karşılaştırırken harf büyüklüğünü, boşlukları ve iki noktayı yok sayar.
Kaynaklar
- FIPS 180-4: Secure Hash Standard (SHS) — NIST
- RFC 1321: The MD5 Message-Digest Algorithm — IETF
- RFC 6151: Updated Security Considerations for the MD5 Message-Digest and the HMAC-MD5 Algorithms — IETF
- The first collision for full SHA-1 (Stevens ve diğerleri, 2017) — IACR Cryptology ePrint Archive
- NIST Retires SHA-1 Cryptographic Algorithm — NIST