adicionando esta nota a quem possa interessar: o SHA-1 agora está comprometido , comprovado por uma pesquisa conjunta Google-CWI . TL; DR Não use em qualquer lugar que possua qualquer valor.
Ótimo! Mas como você executa sha1sum -cquando {file}.sha1contém apenas o hash e nenhum nome de arquivo (tantas vezes para ser baixado de vários cantos da Internet)? Eu vim com for f in *.sha1; do echo "$(cat $f) ${f/.sha1/}"; done | sha1sum -c(note espaço duplo), mas isso deve ser muito mais simples.
Piotr Findeisen 17/10
3
ou shasum- o SHA padrão é (se estiver correto) SHA1. Você também pode configurá-lo com a -a, --algorithmopção:shasum -a 1
xealits 23/09
3
@PiotrFindeisen - A saída do sha1sum é <hash> <full file path>assim não há informações suficientes para sha1sum -c saber qual arquivo é para verificar
CrazyPenguin
1
Perdoe minha ignorância, mas por que é tão difícil verificar uma soma de arquivos? Não poderíamos simplesmente fazer sha1sum <file_path> <the_expected_hash> ?
Obrigado, embora eu não ache que você deva ter o * lá. Aqui está um exemplo concreto: echo 'b78bb50bdac5ec8c108f34104f788e214ac23635 raspbian.zip' | sha1sum -c - Isso verificará um nome de arquivo raspbian.zip no diretório atual.
Luke
1
Essa deve ser a resposta aceita. Criar um arquivo é um intermediário desnecessário.
Joel B
Caso alguém chegue aqui e esteja em um mac, existem dois espaços entre o nome do arquivo e a saída do shasum a partir do OSX 10.13.3. Quando eu usei apenas um, eu tenho um erro de formatação incorreta para -c shasum
este é askubunutu, então estar em um Mac seria off-topic); mas isso deve funcionar no Ubuntu também, então +1
Jeff Puckett
4
Sobre o que vocês estão falando? Sim, entendo o conceito por trás do sha1sum, mas as informações acima são confusas para dizer o melhor. Primeiro, o Ubuntu não parece ter arquivos sha1sum - apenas strings em uma página da Web como esta para o Mate 16.04 Beta 1:
Para verificar a integridade de um .iso baixado, é aberto o programa do terminal, "cd Downloads" e, em seguida, sha1sum. Depois de um tempo, o terminal produzirá um hash como
O Python possui uma excelente hashlibbiblioteca, que permite calcular vários hashsums, inclusive sha1. Aqui está um script simples que pode fazer o trabalho:
#!/usr/bin/env python3import sys
import hashlib
import os
from collections importOrderedDictas od
def get_hashsums(file_path):
hash_sums = od()
hash_sums['md5sum']= hashlib.md5()
hash_sums['sha1sum']= hashlib.sha1()
hash_sums['sha224sum']= hashlib.sha224()
hash_sums['sha256sum']= hashlib.sha256()
hash_sums['sha384sum']= hashlib.sha384()
hash_sums['sha512sum']= hashlib.sha512()with open(file_path,'rb')as fd:
data_chunk = fd.read(1024)while data_chunk:for hashsum in hash_sums.keys():
hash_sums[hashsum].update(data_chunk)
data_chunk = fd.read(1024)
results = od()for key,value in hash_sums.items():
results[key]= value.hexdigest()return results
def main():for path in sys.argv[1:]:print(">>> ",path)for key,value in get_hashsums(path).items():print(key,value)if __name__ =='__main__': main()
Respostas:
sha1sum
Se você deseja enviar o arquivo junto com sua saída sha1sum, redirecione a saída para um arquivo:
Envie os dois arquivos e a outra parte pode fazer uma ...
Deve mostrar
OK
se osha1
está correto.fonte
sha1sum -c
quando{file}.sha1
contém apenas o hash e nenhum nome de arquivo (tantas vezes para ser baixado de vários cantos da Internet)? Eu vim comfor f in *.sha1; do echo "$(cat $f) ${f/.sha1/}"; done | sha1sum -c
(note espaço duplo), mas isso deve ser muito mais simples.shasum
- o SHA padrão é (se estiver correto) SHA1. Você também pode configurá-lo com a-a, --algorithm
opção:shasum -a 1
<hash> <full file path>
assim não há informações suficientes para sha1sum -c saber qual arquivo é para verificarsha1sum <file_path> <the_expected_hash>
?Sem criar arquivo local:
Para verificação, vá para o diretório que contém
filename
e execute este comando:fonte
echo 'b78bb50bdac5ec8c108f34104f788e214ac23635 raspbian.zip' | sha1sum -c -
Isso verificará um nome de arquivo raspbian.zip no diretório atual.É muito simples.
Navegue até o terminal e digite:
para confirmar um uso de hash sha1:
fonte
Para quem está no mac e não possui o coreutils / sha1sum instalado.
Exemplo:
fonte
Sobre o que vocês estão falando? Sim, entendo o conceito por trás do sha1sum, mas as informações acima são confusas para dizer o melhor. Primeiro, o Ubuntu não parece ter arquivos sha1sum - apenas strings em uma página da Web como esta para o Mate 16.04 Beta 1:
Para verificar a integridade de um .iso baixado, é aberto o programa do terminal, "cd Downloads" e, em seguida, sha1sum. Depois de um tempo, o terminal produzirá um hash como
Em seguida, temos que ir para a página da web e comparar as strings para verificar se a verificação funciona. Não é tão fácil quanto poderia ser.
Dave,
fonte
Pitão
O Python possui uma excelente
hashlib
biblioteca, que permite calcular vários hashsums, inclusivesha1
. Aqui está um script simples que pode fazer o trabalho:Execução de teste:
Com um único arquivo:
Com glob:
fonte