Pour vérifier le sha1 d'un fichier que je voudrais utiliser, openssl sha1 <file>
je ne sais pas quoi utiliser pour vérifier le hachage sha256 du fichier, mais que recommanderiez-vous?
macos
command-line
encryption
Erikvold
la source
la source
OS X est livré avec une commande shasum .
Vous pouvez utiliser:
Plus de détails:
la source
which shashum
ne/usr/bin
avec des options. Je devrai vérifier que c'est le cas plus tard aujourd'hui. Mettra à jour la réponse si cela provenait effectivement de l'installation XCL.shasum
renvoie un hachage différent deopenssl sha -sha256 <file>
(ce dernier étant le hachage correct). Une idée pourquoi?shasum
est un script Perl, utiliséDigest::SHA
pour calculer la valeur de hachage. Pour le même fichier, je reçois exactement le même SHA avecshasum
ouopenssl
pour unSHA-256
calcul de hachage. Voir: gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfdPour clarifier la réponse utile de @ John - qui vous permet de comparer un hachage donné avec son fichier en une seule commande:
Entrez
shasum -a 256 -c <<<
,suivi d'un espace optionnel,
suivi d'un simple tick (
'
),suivi du hachage à comparer,
suivi d'un espace,
suivi d'un caractère mode, basé sur la façon dont le hachage initial a été généré:
rien , si le hachage a été créé avec
-t
ou aucune option (mode texte, qui est la valeur par défaut)astérisque (
*
), si le hachage a été créé avec-b
(mode binaire)point d'interrogation (
?
), si le hachage a été créé avec-p
(mode portable)caret (
^
), si le hachage a été créé avec-0
(mode bits)suivi du chemin d'accès au fichier,
suivi d'un tick simple de fermeture (
'
).Comme dans la répartition suivante, avec des délimitations entre parenthèses autour des parties de hachage et de chemin de fichier, et des crochets autour de la partie facultative "caractère de mode". ( N'incluez pas les parenthèses ni les crochets dans la vie réelle, ils sont juste là pour rendre les parties faciles à voir! )
En panne :
La commande réelle shasum est
shasum -a 256 -c
-a 256
ditshasum
d'utiliser sha256 .-c
ditshasum
de "vérifier" l'entrée fournie.Le
<<<
est un jeu de caractères spéciaux Unix / Linux, appelé opérateur de "redirection". C'est pour introduire quelque chose dans une commande antérieure. En l'utilisant, nous disons que nous allons fournir une chaîne d'informations que lashasum
commande utilisera en tant qu'entrée.La chaîne d'informations d'entrée doit comporter des ticks simples d'ouverture et de fermeture, tels que
'some string here'
, ou dans ce cas, le hachage, le caractère de mode et le chemin de fichier à vérifier.La partie de hachage à l'intérieur de la chaîne n'a besoin de rien de spécial, mais elle doit être suivie d'un espace.
La partie de caractère de mode peut être rien, un astérisque (
*
), un point d'interrogation (?
) ou un caret (^
). Cela indiqueshasum
le mode avec lequel le hachage a été généré. (Remarque: aucun caractère, représentant le mode texte, estshasum
la valeur par défaut.)La filepath partie, est le chemin réel du fichier à vérifier.
Voici donc un exemple concret qui compare un fichier de téléchargement MAMP particulier à sa prétendue valeur SHA-256 . Le
*
caractère de mode était requis pour que cette vérification fonctionne:Remarque: le résultat de cette commande (pour mon exemple de fichier) est soit -
D'ACCORD:
ou
ÉCHOUÉ:
la source
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
renvoie le message*sample.txt: FAILED open or read
. Sans l'astérisque,sample.txt: OK
. Je n'ai pas encore trouvé la base de l'utilisation de l'astérisque ailleurs. Pourriez-vous clarifier?--binary
option)? A partir de la page de manuel: "Lors de la vérification, l’entrée doit être une sortie précédente de ce programme. Le mode par défaut consiste à imprimer une ligne avec une somme de contrôle, un caractère indiquant le type (*
pour binaire,` pour texte,U
pour UNIVERSAL,^
pour BITS, etc.).?
pour portable), et nom pour chaque fichier. " Ainsi, les caractères entre la somme de contrôle et le nom de fichier dépendent du mode défini lors de la création de la somme de contrôle?Je voudrais utiliser cette commande.
Exemple:
la source