agregando esta nota a quien corresponda: SHA-1 ahora está comprometido , demostrado por una investigación conjunta de Google-CWI . TL; DR No lo use en ningún lugar que tenga ningún valor.
¡Excelente! Pero, ¿cómo se ejecuta sha1sum -ccuando {file}.sha1contiene solo el hash y ningún nombre de archivo (que a menudo se descarga desde varios rincones de Internet)? Se me ocurrió for f in *.sha1; do echo "$(cat $f) ${f/.sha1/}"; done | sha1sum -c(nota doble espacio), pero esto debe ser mucho más simple.
Piotr Findeisen
3
o shasum- el SHA predeterminado es (si estoy en lo correcto) SHA1. También lo configura con la -a, --algorithmopción:shasum -a 1
xealits
3
@PiotrFindeisen: el resultado de sha1sum es <hash> <full file path>que hay suficiente información para que sha1sum -c sepa qué archivo debe verificar
CrazyPenguin
1
Disculpe mi ignorancia, pero ¿por qué es tan difícil verificar la suma de un archivo? ¿No podríamos simplemente hacer sha1sum <file_path> <the_expected_hash> ?
Gracias, aunque no creo que debas tener el * allí. Aquí hay un ejemplo concreto: echo 'b78bb50bdac5ec8c108f34104f788e214ac23635 raspbian.zip' | sha1sum -c - que verificará un nombre de archivo raspbian.zip en el directorio actual.
Lucas,
1
Esta debería ser la respuesta aceptada. Crear un archivo es un intermedio innecesario.
Joel B
En caso de que alguien llegue aquí y esté en una Mac, hay dos espacios entre el nombre de archivo y la salida de shasum a partir de OSX 10.13.3. Cuando usé solo uno, recibí un error de formato incorrecto para shasum -c
esto es askubunutu, por lo que estar en una Mac estaría fuera de tema;) pero esto también debería funcionar en ubuntu, así que +1
Jeff Puckett
4
¿De qué están hablando? Sí, entiendo el concepto detrás de sha1sum, pero la información anterior es confusa para decir lo mejor. Primero, Ubuntu no parece tener archivos sha1sum, solo cadenas en una página web como esta para Mate 16.04 Beta 1:
Para verificar la integridad de un .iso descargado, uno abre el programa de terminal, hace "Descargas de CD", luego sha1sum. Después de un momento, el terminal producirá un hash como
Python tiene una excelente hashlibbiblioteca, que permite calcular múltiples hashsums, incluidos sha1. Aquí hay un script simple que puede hacer el trabajo:
#!/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()
Respuestas:
sha1sum
Si desea enviar el archivo junto con su salida sha1sum, redirija la salida a un archivo:
Envíe ambos archivos y la otra parte puede hacer un ...
Debería mostrar
OK
sisha1
es correcto.fuente
sha1sum -c
cuando{file}.sha1
contiene solo el hash y ningún nombre de archivo (que a menudo se descarga desde varios rincones de Internet)? Se me ocurriófor f in *.sha1; do echo "$(cat $f) ${f/.sha1/}"; done | sha1sum -c
(nota doble espacio), pero esto debe ser mucho más simple.shasum
- el SHA predeterminado es (si estoy en lo correcto) SHA1. También lo configura con la-a, --algorithm
opción:shasum -a 1
<hash> <full file path>
que hay suficiente información para que sha1sum -c sepa qué archivo debe verificarsha1sum <file_path> <the_expected_hash>
?Sin crear un archivo local:
Para verificar, vaya al directorio que contiene
filename
y ejecute este comando:fuente
echo 'b78bb50bdac5ec8c108f34104f788e214ac23635 raspbian.zip' | sha1sum -c -
que verificará un nombre de archivo raspbian.zip en el directorio actual.Es muy sencillo.
Navegue a la terminal y escriba:
para confirmar un uso de hash sha1:
fuente
Para aquellos que están en mac y no tienen coreutils / sha1sum instalado.
Ejemplo:
fuente
¿De qué están hablando? Sí, entiendo el concepto detrás de sha1sum, pero la información anterior es confusa para decir lo mejor. Primero, Ubuntu no parece tener archivos sha1sum, solo cadenas en una página web como esta para Mate 16.04 Beta 1:
Para verificar la integridad de un .iso descargado, uno abre el programa de terminal, hace "Descargas de CD", luego sha1sum. Después de un momento, el terminal producirá un hash como
Luego, tenemos que ir a la página web y comparar las cadenas para verificar que la verificación funciona. No es tan fácil como podría ser.
Dave
fuente
Pitón
Python tiene una excelente
hashlib
biblioteca, que permite calcular múltiples hashsums, incluidossha1
. Aquí hay un script simple que puede hacer el trabajo:Prueba de funcionamiento:
Con un solo archivo:
Con glob:
fuente