O que significa o BuildID SHA1?

12

Eu estava explorando a janela do terminal do ubuntu unity quando isso surgiu:

Quando eu digitei:

file /bin/ls

a saída é:

/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

Eu queria verificar se o sha1 está correto e, portanto, digitei isto:

openssl sha1 /bin/ls

No entanto, a saída é a seguinte:

SHA1(/bin/ls)= 8800fee57584ed1c44b638225c2f1eec818a27c2

Embora tenham o mesmo comprimento em hexadecimal, eles não parecem corresponder. Perdi algo? Ou isso se BuildID[sha1]refere a outra coisa?

Vern
fonte

Respostas:

15

Ou o BuildID [sha1] se refere a outra coisa?

BuildID NÃO é o hash de um binário ou relacionado a ele. É um identificador para a sessão "build" (ou compilação) que produziu esse binário. Ele está lá principalmente para fins de depuração, para que os desenvolvedores possam ver os logs, o ambiente etc. da sessão número $ BuildID e tentar corrigir o problema, reproduzi-lo etc.

BTW, os hashes SHA1 de qualquer coisa têm sempre 160 bits :)

ish
fonte
Isso poderia ser usado na impressão digital do cache da ferramenta de construção? Por exemplo, os scons poderiam apenas ler esse ID em vez de ter que recalcular hashes MD5 de objetos e bibliotecas intermediárias para uso na verificação de dependências.
Nordlöw 1/10/12