GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Fungsi Sha1sum Memberi Anda Hash Unik??

Tutup. Pertanyaan ini di luar topik. Saat ini tidak menerima jawaban.

Ingin memperbaiki pertanyaan ini? Perbarui pertanyaan agar sesuai dengan topik untuk Unix &Linux Stack Exchange.

Ditutup 2 tahun yang lalu.


Perbaiki pertanyaan ini

Saya membacanya menggunakan sha1sum perintah akan menjalankan algoritme SHA-1 dan memberi Anda hasil yang "unik", tetapi bagaimana bisa?

sha1sum memberi Anda hash 40 karakter, seperti ini:

e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e

Panjangnya 40 karakter, dan memiliki karakter heksadesimal, sehingga hash dapat memiliki paling banyak 16 kombinasi.

Ini berarti bahwa, untuk dua file acak, ada ada kecil kemungkinan bahwa jumlah hash mereka akan sama persis, bukan?

Jawaban yang Diterima:

Sebuah hash SHA-1, seperti hash apapun, tidak unik; sebenarnya tabrakan telah ditemukan (dan yang lebih penting, dibuat).

Properti yang diinginkan dari fungsi hash adalah sulit untuk membuat dua file yang menghasilkan hash yang sama, bukan karena hash yang dihasilkan unik (seperti yang Anda sebutkan, jumlah SHA-1 memiliki 160 bit, jadi hanya ada 2 hash yang berbeda); arti sulit bahwa Anda tidak dapat menemukan tabrakan lebih cepat daripada pencarian brute-force. Jika Anda memilih satu file, file lain yang dipilih secara acak memiliki peluang satu banding 2 untuk memiliki hash yang sama. SHA-1 dianggap tidak aman sejak 2005; Anda akan melihat peluang yang diberikan di sana sebagai satu-dalam-2, berkat serangan ulang tahun (kemungkinan menemukan dua file bertabrakan di tumpukan jerami besar, bukan menemukan file bertabrakan untuk target tertentu).


Linux
  1. Mengapa `md5sum` Tidak Memberikan Hash yang Sama Seperti Internet?

  2. Bagaimana Anda Mencerminkan Stdout Dari Satu Terminal Ke Terminal Lainnya?

  3. Bagaimana Cara Menghasilkan Hash Perangkat Keras yang Unik?

  1. Bagaimana Anda Secara Terprogram Mengatur Jam Perangkat Keras di Linux?

  2. Bagaimana Anda bisa mengidentifikasi chipset perangkat usb di Linux?

  3. Bagaimana Anda bisa menentukan versi terinstal dari pustaka glibc?

  1. Bagaimana Anda mem-gunzip file dan menyimpan file .gz?

  2. Bagaimana Anda mengambil waktu saat ini di server?

  3. Bagaimana Anda menggunakan ekspresi reguler dengan perintah cp di Linux?