Um das sha1 einer Datei zu überprüfen, die ich verwenden würde, openssl sha1 <file>
bin ich nicht sicher, was ich verwenden soll, um den sha256-Hash der Datei zu überprüfen. Was würden Sie empfehlen?
macos
command-line
encryption
erikvold
quelle
quelle
OS X wird mit einem Shasum-Befehl ausgeliefert .
Sie können verwenden:
Mehr Details:
quelle
which shashum
gibt nichts aus/usr/bin
mit optionalen Dingen verschmutzen . Ich werde das später heute noch überprüfen müssen. Aktualisiert die Antwort, wenn sie tatsächlich von der XCL-Installation stammt.shasum
gibt einen anderen Hash zurück alsopenssl sha -sha256 <file>
(wobei letzterer der richtige Hash ist). Irgendeine Idee warum?shasum
ist ein Perl-Skript, mitDigest::SHA
dem der Hash-Wert berechnet wird. Für dieselbe Datei erhalte ich genau dieselbe SHA, indem ich entwedershasum
oderopenssl
für eineSHA-256
Hash-Berechnung verwende. Siehe: gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfdDer
shasum
Befehl wird seit einiger Zeit mit OSX ausgeliefert. Es gibt das gleiche Ergebnis wieopenssl sha -sha256
beishasum
Verwendung der-a 256
Option.quelle
Zur Verdeutlichung der nützlichen Antwort von @ John, mit der Sie einen bestimmten Hash mit seiner Datei in einem Befehl vergleichen können:
Geben Sie ein
shasum -a 256 -c <<<
,gefolgt von einem optionalen Leerzeichen,
gefolgt von einem einzelnen Häkchen (
'
),gefolgt von dem zu vergleichenden Hash,
gefolgt von einem Leerzeichen,
gefolgt von einem Moduszeichen, basierend darauf, wie der anfängliche Hash generiert wurde:
nichts , wenn der Hash mit
-t
oder ohne Option erstellt wurde (Textmodus, der die Standardeinstellung ist)Sternchen (
*
), wenn der Hash mit-b
(Binärmodus) erstellt wurdeFragezeichen (
?
), wenn der Hash mit-p
(portabler Modus) erstellt wurdecaret (
^
), wenn der Hash mit-0
(bits mode) erstellt wurdegefolgt vom Pfad zur Datei,
gefolgt von einem abschließenden einzelnen Häkchen (
'
).Wie in der folgenden Aufteilung, mit Begrenzung der Parens um die Hash- und Dateipfadteile und eckigen Klammern um den optionalen "Moduszeichen" -Teil. ( Fügen Sie im wirklichen Leben keine Parens oder Klammern hinzu - sie sind nur dazu da, die Teile einfach zu sehen! )
Aufgeschlüsselt :
Der eigentliche Shasum- Befehl lautet
shasum -a 256 -c
-a 256
sagt sha256shasum
zu benutzen .-c
fordert Sieshasum
auf, die bereitgestellten Eingaben zu "überprüfen".Dies
<<<
ist ein Unix / Linux-Sonderzeichensatz, der als "Umleitungs" -Operator bezeichnet wird. Es ist dafür gedacht, etwas in einen vorherigen Befehl einzuspeisen. Wenn Sie es verwenden, geben Sie eine Reihe von Informationen an, die dershasum
Befehl als Eingabe verwenden soll.Die Zeichenfolge der Eingabeinformationen muss einzelne öffnende und schließende Häkchen enthalten, z. B.
'some string here'
in diesem Fall den Hash, das Moduszeichen und den zu überprüfenden Dateipfad.Der Hash- Teil in der Zeichenkette benötigt nichts Besonderes - es muss jedoch ein Leerzeichen folgen.
Der Moduszeichenteil kann nichts, ein Sternchen (
*
), ein Fragezeichen (?
) oder ein Caret (^
) sein. Dies gibtshasum
den Modus an, mit dem der Hash generiert wurde. (Hinweis: Kein Zeichen, das den Textmodus darstellt, istshasum
die Standardeinstellung.)Der Dateipfad- Teil ist der tatsächliche Pfad zu der zu überprüfenden Datei.
Hier ist ein Beispiel aus der Praxis, in dem eine bestimmte MAMP-Download- Datei mit ihrem angeblichen SHA-256- Wert verglichen wird. Das
*
Moduszeichen war erforderlich, damit diese Prüfung funktioniert:Hinweis: Das Ergebnis dieses Befehls (für meine Beispieldatei) ist entweder -
OKAY:
oder
GESCHEITERT:
quelle
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
Gibt die Nachricht zurück*sample.txt: FAILED open or read
. Ohne das Sternchensample.txt: OK
. Ich konnte die Basis für die Verwendung des Sternchens an anderer Stelle noch nicht finden. Könnten Sie das klären?--binary
Option) generiert wurde ? Aus der Manpage: "Bei der Überprüfung sollte die Eingabe eine frühere Ausgabe dieses Programms sein. Der Standardmodus ist das Drucken einer Zeile mit Prüfsumme, einem Zeichen, das den Typ angibt (*
für Binär,` `für Text,U
für UNIVERSAL,^
für BITS,?
für portable) und Name für jede DATEI. " Die Zeichen zwischen Prüfsumme und Dateiname hängen also vom Modus ab, der bei der Erstellung der Prüfsumme festgelegt wurde.Ich würde diesen Befehl verwenden.
Beispiel:
quelle