Questão Calculando sha256sum de um dvd


Eu tenho um dvd queimado de uma imagem iso. Eu também tenho sha256sum da imagem iso. para comparar hashes, criei uma imagem iso a partir do dvd e executei sha256sum image.iso, mas difere do hash da imagem original.

Esta é uma maneira correta de calcular o hash de um DVD? Se não, por que não funciona?

Editar: Alguém pode explicar o motivo que Aaron Miller forneceu no comentário. Existe uma maneira de fazer iso com exatamente as mesmas opções que a iso original?


5


origem


A teoria está correta, mas não leva em conta as diferenças entre as opções usadas na geração do seu ISO e aquelas usadas ao criar aquela que você gravou no DVD. Eu não tenho certeza se ou como é possível identificar as especificidades que entraram na criação do ISO original. - Aaron Miller
Há preenchimento de um limite de 16 setores para fins de ECC. Verifique seu ISO criado para ver se ele é um pouco maior que o original. O Drive pode tê-lo preenchido ao gravar fisicamente os dados e, em seguida, o que você usou para criar o formulário ISO, o disco não desfez esse efeito. - Brian


Respostas:


A única maneira que eu encontrei para fazer isso é para hash os arquivos em si, não as imagens. Usando uma ferramenta como Febooti Hash e CRC (Windows) ou GUI Quick Hash Você pode selecionar todos os arquivos em questão, clicar com o botão direito e gravar o hash. Você pode fazer a mesma coisa na linha de comando com sha256sum também é claro. Depois de gravar esses arquivos em um disco, navegue até os arquivos no disco e verifique o hash como antes. Os hashes devem coincidir.

Pensamentos adicionais:

Você indica que seu processo atual é criar uma iso do disco que você deseja verificar. Eu diria que este é um passo extra e desnecessário. Basta colocar o disco e fazer o hash dos arquivos no disco, como sugeri, e compará-los ao hash dos arquivos que estão na sua imagem original. Não há necessidade de criar um iso primeiro, então isso deve ser muito mais rápido.


6





ATUALIZAR:

Esta é uma maneira correta de calcular o hash de um DVD?

Primeiro, pegue um sha256sum de o próprio DVD como feito neste site:

... você já gravou o CD e agora gostaria de voltar e verificar   isto? Contanto que você tenha o sha1sum ou o md5sum, é simples.

...

Drive de DVD-RW é / dev / hda

g33kgrrl @ home ~ / Desktop $ sha1sum / dev / hda

89164d79d84f483c3642f25507186e58bf5fc0d8 / dev / hda

Enquanto eles usam sha1sum, ele deve funcionar da mesma forma para sha256sum. Primeiro, compare isso com o hash da sua iso original.

Se não, por que não funciona?

Como esse usuário aponta:

em certos casos, o tamanho pode ser ligeiramente diferente, porque existem   zeros à direita na cópia ou na imagem original

Ele fornece alguns passos para descobrir se este é o caso, citação:

Por exemplo, se copy.iso for menor que orig.iso:

sha1sum copy.iso
head -c $(stat -c %s copy.iso) orig.iso

É claro que você também deve verificar se os bytes à direita são apenas zero:

od -j $(stat -c %s copy.iso) orig.iso

E finalmente de volta à sua nova pergunta:

Existe uma maneira de fazer o arquivo iso com exatamente as mesmas opções que o   iso original?

Eu ainda não encontrei uma maneira de fazer isso. No entanto, depois de ter os hashes de cada etapa, você pode pelo menos ver onde a diferença ocorreu. Meu palpite é que o programa que queima seu arquivo ISO executa algumas etapas que são necessárias para a gravação, mas que também modificam a imagem de alguma forma?

Um pouco fora do escopo desta questão, mas seria interessante ver se ele é modificado o mesmo todas as vezes. Em outras palavras, gravar vários discos e ver se há hashes são todos iguais?

Resposta original:

Não tenho certeza se isso satisfaz sua pergunta (talvez seu aplicativo existente já execute essa função)

Mas se você pegar o Utilitário ImgBurn (utilitário do Windows, desculpe) tem um recurso para "verificar" um disco usando uma imagem ISO.

Meu palpite é que, sob o capô, isso executa algumas etapas extras para alcançar o que você está tentando fazer. Pena que não é de código aberto, ou você pode pegar o código e ver exatamente o que está acontecendo.

Talvez haja outros utilitários de gravação que tenham funcionalidade semelhante e sejam de código aberto?


3





Isso funcionou para mim (demorou cerca de 20min para concluir, no entanto):

# dd if=/dev/sr0 |sha256sum

0



Isto parece um caso de UUOC, só que em vez de cat você costumava dd. É por isso que demorou 20 minutos. - Dmitry Grigoryev
Desculpa. Não sei o que é "UUOC". - Steven