Co oznacza BuildID SHA1?

12

Kiedy to się pojawiło, eksplorowałem okno terminalu Ubuntu Unity:

Kiedy pisałem:

file /bin/ls

dane wyjściowe to:

/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

Chciałem sprawdzić, czy sha1 jest poprawny i dlatego napisałem:

openssl sha1 /bin/ls

Jednak wynik jest taki:

SHA1(/bin/ls)= 8800fee57584ed1c44b638225c2f1eec818a27c2

Mimo że mają tę samą długość w systemie szesnastkowym, nie pasują do siebie. Przegapiłem coś? Czy BuildID[sha1]odnosi się to do czegoś innego?

Vern
źródło

Odpowiedzi:

15

Czy może BuildID [sha1] odnosi się do czegoś innego?

BuildID NIE jest skrótem pliku binarnego ani z nim powiązanego. Jest to identyfikator sesji „kompilacji” (lub kompilacji), która wygenerowała ten plik binarny. Przeważnie służy on do celów debugowania, dzięki czemu programiści mogą przeglądać dzienniki, środowisko itp. Z numeru sesji $ BuildID i próbować naprawić problem, odtworzyć go itp.

BTW, skróty SHA1 czegokolwiek mają zawsze 160 bitów :)

ish
źródło
Czy można tego użyć do pobierania odcisków palców pamięci podręcznej narzędzia do budowania? Na przykład scons może po prostu odczytać ten identyfikator zamiast konieczności ponownego obliczania skrótów MD5 obiektów pośrednich i bibliotek do użycia w sprawdzaniu zależności.
Nordlöw