Bagaimana file teks nol byte dapat menghasilkan hash ketika hash dengan sha1sum, sha256sum dll? Data apa yang hashing program untuk menghasilkan nilai hash?
Ta
Bagaimana file teks nol byte dapat menghasilkan hash ketika hash dengan sha1sum, sha256sum dll? Data apa yang hashing program untuk menghasilkan nilai hash?
Ta
Jawaban:
Algoritma hash membaca input dan memprosesnya, tidak masalah jika ada data sama sekali. Ini adalah perilaku yang valid dan diinginkan dan bahkan digunakan untuk memverifikasi jika implementasi tertentu benar. Ini mengarah ke "null-hashes" untuk semua algoritma utama.
Untuk meringkasnya: da39a3ee5e6b4b0d3255bfef95601890afd80709 adalah hasa-hash untuk file kosong di mana-mana, hal yang sama berlaku dengan hash null dari alogitma lainnya.
Semua algoritma hash di Quick Hash adalah konstruksi Merkle-Damgård . Dengan demikian, mereka membungkus pesan ke kelipatan ukuran blok.
Algoritme Quick Hash mencapainya dengan menambahkan 1
sedikit, sebanyak yang 0
diperlukan, dan akhirnya panjang pesan.
Ini memungkinkan pesan hashing dengan panjang sewenang-wenang, termasuk pesan panjang nol.
(Add-on untuk Dennis dan jawaban fixer1234?)
Singkatnya:
$ shasum -a 256 /dev/null
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /dev/null
Semua file 0-byte akan memiliki checksum yang sama.
$ shasum -a 512 /dev/null
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e /dev/null
$ shasum /dev/null
da39a3ee5e6b4b0d3255bfef95601890afd80709 /dev/null
$ md5 /dev/null
MD5 (/dev/null) = d41d8cd98f00b204e9800998ecf8427e
(catatan: MD5 rusak; ini bukan 'hash aman'. Ini didokumentasikan dalam entri MD5 di Wikipedia.)
Jadi, misalnya, jika Anda mencoba memverifikasi tidak bersalahnya file di virustotal.com dengan salah satu nilai hash aman yang tercantum di sini, mis. da39a3ee5e6b4b0d3255bfef95601890afd80709
Anda dapat yakin bahwa file tersebut memang 0 byte (atau folder, yang virustotal, membingungkan, hash seolah-olah itu file 0-byte.)