Sıfır bayt dosyaları nasıl bir karma değer üretebilir?


20

Sıfır bayt metin dosyası sha1sum, sha256sum vb. İle karma olduğunda nasıl bir karma oluşturabilir? Programların bir karma değer üretmesi için hangi veriler karmadır?

Ta

Linux'ta QuickHash

Terminal Komutları

Yanıtlar:


21

Karma algoritmalar girdiyi okur ve işler, veri olursa olsun işler. Bu geçerli ve istenen bir davranıştır ve hatta belirli bir uygulamanın doğru olup olmadığını doğrulamak için kullanılır. Bu, tüm büyük algoritmalar için "boş karmalar" a yol açar.

Özetlemek gerekirse: da39a3ee5e6b4b0d3255bfef95601890afd80709, her yerde boş bir dosya için sha1 karmasıdır, aynı diğer alrogritmaların sıfır karmaları için de geçerlidir.


1
Her gün yeni bir şeyler öğreniyorsun! Her algoritma için bir "boş değer" olduğunu bilmiyordum. Çok teşekkürler.
Gizmo_the_Great

3
Karma algoritmaların önceden belirlenmiş bir başlangıç ​​koşulu vardır - verilerde okuduklarında ve mutasyon yaptıkları bir sayı gibi. Okunacak veri yoksa, karma yalnızca önceden ayarlanmış başlangıç ​​koşulunun bir sonucudur.
Kevin

Bunun nedeni, sha1 algoritmasının verinin uzunluğunu (bu durumda: sıfır) eklemesi ve mesaja bazı bayraklar ve dolguların eklenmiş olmasıdır. Dolayısıyla "veri yok" bile yine de bazı verilerin işlenmesine neden olur.
user92979

14

Quick Hash içindeki tüm karma algoritmalar Merkle – Damgård yapılarıdır . Bu nedenle, mesajı blok boyutunun katlarına katlar.

Quick Hash'in algoritmaları bunu 1biraz, gerektiği kadar 0bit ve son olarak mesaj uzunluğu ekleyerek başarır .

Bu, sıfır uzunluklu mesajlar da dahil olmak üzere, rastgele uzunluktaki mesajların karma olmasını sağlar.


Düzenleme nedenim kafa karıştırıcıysa, başlangıçta cevabınızı yanlış okudum ve "açıklık için" yeniden yazdım, sonra düzenlememin yanlış olduğunu fark ettim ve geri döndüm ve düzelttim. Sistem, aynı zaman aralığı içinde olduğu için iki açıklamayı birleştirdi.
fixer1234

1

(Dennis ve fixer1234'ün cevabı eklensin mi?)

özlü:

$ shasum -a 256 /dev/null e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null

Tüm 0 bayt dosyaları aynı sağlama toplamına sahip olacaktır.

$ shasum -a 512 /dev/null cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /dev/null

$ shasum /dev/null da39a3ee5e6b4b0d3255bfef95601890afd80709 /dev/null

$ md5 /dev/null MD5 (/dev/null) = d41d8cd98f00b204e9800998ecf8427e (not: MD5 bozuk; 'güvenli bir karma' değil. Bu, Wikipedia'daki MD5 girişinde belgelenmiştir.)

Bu nedenle, örneğin, virustotal.com'daki dosyaların zararsızlığını burada listelenen güvenli sağlama değerlerinden biriyle doğrulamaya çalışıyorsanız , örneğin da39a3ee5e6b4b0d3255bfef95601890afd80709dosyanın gerçekten 0 bayt olduğundan (veya bir klasör olduğundan emin olabilirsiniz) virustotal, kafa karıştırıcı bir şekilde, 0 baytlık bir dosya gibi karma yapar.)


Bu mevcut cevaplara nasıl katkıda bulunuyor?
Máté Juhász

Bir şüphecinin Tüm 0 bayt dosyalarının aynı sağlama toplamına sahip olacağını doğrulaması için doğrudan bir yol sağlayarak virustotal.com'da 0 bayt dosyaların zararsızlığını tartışırken birkaç kişi buna kuşkuyla yaklaştı. Bu yüzden bu soruna gelen birisi için çözüme bir yol eklediğini düşünüyorum, eğer sağlama toplamı cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d287287284287284287284287284
Matthew Elvey
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.