Apa yang dimaksud dengan BuildID SHA1?

12

Saya sedang menjelajahi sekitar di jendela terminal ubuntu kesatuan ketika ini muncul:

Saat saya mengetik:

file /bin/ls

outputnya adalah:

/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x214a38d0db472db559f0dabf0ae97f82fea83e03, stripped

Saya ingin memverifikasi bahwa sha1 benar dan karenanya saya mengetik ini:

openssl sha1 /bin/ls

Namun, hasilnya adalah sebagai berikut:

SHA1(/bin/ls)= 8800fee57584ed1c44b638225c2f1eec818a27c2

Sementara mereka memiliki panjang yang sama dalam heksadesimal, mereka tampaknya tidak cocok. Apakah saya melewatkan sesuatu? Atau apakah BuildID[sha1]merujuk ke sesuatu yang lain?

Vern
sumber

Jawaban:

15

Atau apakah BuildID [sha1] merujuk ke sesuatu yang lain?

BuildID BUKAN hash dari biner atau terkait dengannya. Ini adalah pengidentifikasi untuk sesi "build" (atau kompilasi) yang menghasilkan biner itu. Sebagian besar ada untuk keperluan debug, sehingga pengembang dapat melihat log, lingkungan, dll. Dari nomor sesi $ BuildID dan mencoba untuk memperbaiki masalah, memperbanyaknya, dll.

BTW, hash SHA1 apa pun selalu 160 bit :)

ish
sumber
Mungkinkah ini digunakan dalam pembuatan sidik jari cache alat? Sebagai contoh scon hanya bisa membaca id ini daripada harus menghitung ulang MD5-hash dari objek dan pustaka antara untuk digunakan dalam pemeriksaan dependensi.
Nordlöw