ファイルのsha256ハッシュを確認するにはcliが必要です


127

使用するファイルのsha1を確認するには、ファイルopenssl sha1 <file>のsha256ハッシュを確認するために何を使用すればよいかわかりませんが、何をお勧めしますか?

回答:


156

使用できます

openssl dgst -sha256 <file>

macOS 10.14(Mojave)上のLibreSSL 2.6.4でテスト済み。


Mojaveより前は、openssl sha -sha256 <file>またはを使用できますopenssl sha256 <file>

opensslの舎コマンドのコマンドラインオプションを確認するにはopenssl sha -help


これもポータブルで、ubuntuで実行されます。
クリスチャンボンジョルノ

86

OS Xにはshasumコマンドが付属しています。

> which shasum
/usr/bin/shasum

次を使用できます。

> shasum -a 256 <file>

詳細:

> shasum --help
Usage: shasum [OPTION]... [FILE]...
Print or check SHA checksums.
With no FILE, or when FILE is -, read standard input.

  -a, --algorithm   1 (default), 224, 256, 384, 512, 512224, 512256
  -b, --binary      read in binary mode
  -c, --check       read SHA sums from the FILEs and check them
  -t, --text        read in text mode (default)
  -p, --portable    read in portable mode
                        produces same digest on Windows/Unix/Mac
  -0, --01          read in BITS mode
                        ASCII '0' interpreted as 0-bit,
                        ASCII '1' interpreted as 1-bit,
                        all other characters ignored

The following two options are useful only when verifying checksums:
  -s, --status      don't output anything, status code shows success
  -w, --warn        warn about improperly formatted checksum lines

  -h, --help        display this help and exit
  -v, --version     output version information and exit

When verifying SHA-512/224 or SHA-512/256 checksums, indicate the
algorithm explicitly using the -a option, e.g.

  shasum -a 512224 -c checksumfile

The sums are computed as described in FIPS-180-4.  When checking, the
input should be a former output of this program.  The default mode is to
print a line with checksum, a character indicating type (`*' for binary,
` ' for text, `?' for portable, `^' for BITS), and name for each FILE.

Report shasum bugs to mshelor@cpan.org

うーん、osx 10.11.3にはないようです。which shashum何も出力しない
-erikvold

3
@erikvoldあなたは何を知っていますか?Xcodeのコマンドラインツールで手に入れたに違いない。ああ Appleが/usr/binオプションのもので汚染しないことを本当に願っています。これが今日のケースであることを確認する必要があります。実際にXCLインストールからのものである場合、回答を更新します。
イアンC.

2
shasum異なるハッシュを返しますopenssl sha -sha256 <file>(後者が正しいハッシュです)。理由は何ですか?
-ws6079

@ ws6079 shasumはperlスクリプトでありDigest::SHA、ハッシュ値の計算に使用します。同じファイルに対して、shasumまたはどちらかopensslSHA-256ハッシュ計算を使用して、まったく同じSHAを取得します。参照:gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfd
イアンC.

shahsumは今日、私にとって素晴らしい仕事をしています。
nycynik

7

このshasumコマンドは、OSXにしばらく付属しています。オプションopenssl sha -sha256shasum使用した場合と同じ結果が得られ-a 256ます。


6

@John の有用な答えを明確にするために-1つのコマンドで特定のハッシュとそのファイルを比較できます。

を入力しshasum -a 256 -c <<<
次にオプションのスペース、
単一のティック(')、
比較するハッシュ
、スペース、
モード文字の順に入力します(初期ハッシュの生成方法に基づきます)。

  • 何も、ハッシュを使用して作成された場合は-tオプションなし(デフォルトでテキストモード)または

  • アスタリスク*)、ハッシュが-b(バイナリモード)で作成された場合

  • ?ハッシュが-p(ポータブルモード)で作成された場合、疑問符()

  • キャレット^)、ハッシュが-0(ビットモード)で作成された場合

ファイルへのパスが
続き、最後に単一のチェックマーク(')が続きます。

次の内訳のように、ハッシュおよびファイルパス部分の周りに括弧を描き、オプションの「モード文字」部分の周りに角括弧を描きます。(実生活には括弧や括弧を含めないでください-それらは部品を見やすくするためにここにいます!

shasum -a 256 -c <<< '(hashToCompare) [mode character](filepath)'

分解

実際のshasumコマンドはshasum -a 256 -c

  • -a 256sha256shasumを使用するように指示します。

  • -cshasum提供された入力を「チェック」するよう指示します。

<<<「リダイレクト」演算子と呼ばれるのUnix / Linuxの特殊文字のセットです。前のコマンドに何かを送るためです。これを使用することで、shasumコマンドが入力として使用する情報の文字列を提供することになると言っています。

入力情報の文字列には'some string here'、チェックするハッシュ、モード文字、およびファイルパスなどの、単一のティックを開くおよび閉じる必要があります。

  • 文字列内のハッシュ部分には特別なものは必要ありませんが、その後にスペースが必要です。

  • モード文字部分は何も、アスタリスク(になることはできません*)、疑問符(?)、またはキャレット(^)。これはshasum、ハッシュが生成されたモードを示します。(注:テキストモードを表す文字はまったくありませんshasum。)

  • ファイルパスの一部は、ファイルへの実際のパスがチェックされます。


そのため、特定のMAMPダウンロードファイルをSHA-256の値と照合する実際の例を次に示します。*このチェックが機能するためのモードの文字が必要でした。

shasum -a 256 -c <<< 'f05ede012b8a5d0e7c9cf17fee0fa1eb5cd8131f3c703ed14ea347f25be11a28 *MAMP_MAMP_PRO_5.2.pkg'

注:このコマンドの結果(私のサンプルファイルの場合)は、次のいずれかです。

OK:

MAMP_MAMP_PRO_5.2.pkg:OK

または

失敗:

MAMP_MAMP_PRO_5.2.pkg:失敗した
shasum:警告:1つの計算されたチェックサムが一致しませんでした


私にとっては、これはファイル名の前にアスタリスクなしで動作します(アスタリスクもあります)。
ピーターW

shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'メッセージを返します*sample.txt: FAILED open or read。アスタリスクなしで、sample.txt: OK。私はまだ他の場所でアスタリスクの使用の基礎を見つけることができませんでした。明確にできますか?
SoFarther

アスタリスクの存在は、例で入力として使用されたチェックサムがバイナリモード(--binaryオプション付き)で生成されたことを示していますか?マニュアルページから:「チェックするとき、入力はこのプログラムの以前の出力である必要があります。デフォルトモードは、チェックサム、タイプを示す文字(*バイナリ、テキスト、UUNIVERSAL、^BITS、?ポータブル)、および各ファイルの名前。」だから、チェックサムとファイル名の間の文字は、チェックサムが作成されたときに設定されたモードに依存しますか?
SoFarther

@SoFarther:はい、そうです。そのアイデアを証明するためのいくつかの実験の後、「モード」の側面を明確にするために投稿を更新しました。
リアン

6

このコマンドを使用します。

shasum -a 256 -c <<<'_paste hash to compare here_ *_path to file goes here_'

例:

shasum -a 256 -c <<< '0d2ea6de4f2cbd960abb6a6e020bf6637423c07242512596691960fcfae67206 */Users/USERNAME/Downloads/someprogram.dmg'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.