Что означает BuildID SHA1?

12

Я изучал это в окне терминала Ubuntu Unity, когда это появилось:

Когда я набрал:

file /bin/ls

выход:

/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

Я хотел убедиться, что sha1 правильный, и поэтому я напечатал это:

openssl sha1 /bin/ls

Тем не менее, вывод как таковой:

SHA1(/bin/ls)= 8800fee57584ed1c44b638225c2f1eec818a27c2

Хотя они имеют одинаковую длину в шестнадцатеричном формате, они не совпадают. Я что-то пропустил? Или BuildID[sha1]относится к чему-то еще?

Верн
источник

Ответы:

15

Или BuildID [sha1] ссылается на что-то еще?

BuildID НЕ является хешем двоичного файла или связанным с ним. Это идентификатор сеанса «сборки» (или компиляции), который создал этот двоичный файл. Он в основном используется для целей отладки, чтобы разработчики могли просматривать журналы, среду и т. Д. Из номера сеанса $ BuildID и пытаться исправить проблему, воспроизвести ее и т. Д.

Кстати, SHA1-хеши всего 160 битов :)

иш
источник
Может ли это быть использовано в средствах построения кэша? Например, scons может просто прочитать этот идентификатор вместо того, чтобы пересчитывать MD5-хэши промежуточных объектов и библиотек для использования при проверке зависимостей.
Nordlöw