回答:
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
which shashum
何も出力しない
/usr/bin
オプションのもので汚染しないことを本当に願っています。これが今日のケースであることを確認する必要があります。実際にXCLインストールからのものである場合、回答を更新します。
shasum
異なるハッシュを返しますopenssl sha -sha256 <file>
(後者が正しいハッシュです)。理由は何ですか?
shasum
はperlスクリプトでありDigest::SHA
、ハッシュ値の計算に使用します。同じファイルに対して、shasum
またはどちらかopenssl
のSHA-256
ハッシュ計算を使用して、まったく同じSHAを取得します。参照:gist.github.com/ianchesal/82a064b8971eb5e717ce84f3ded6dbfd
@John の有用な答えを明確にするために-1つのコマンドで特定のハッシュとそのファイルを比較できます。
を入力しshasum -a 256 -c <<<
、
次にオプションのスペース、
単一のティック('
)、
比較するハッシュ
、スペース、
モード文字の順に入力します(初期ハッシュの生成方法に基づきます)。
何も、ハッシュを使用して作成された場合は-t
オプションなし(デフォルトでテキストモード)または
アスタリスク(*
)、ハッシュが-b
(バイナリモード)で作成された場合
?
ハッシュが-p
(ポータブルモード)で作成された場合、疑問符()
キャレット(^
)、ハッシュが-0
(ビットモード)で作成された場合
ファイルへのパスが
続き、最後に単一のチェックマーク('
)が続きます。
次の内訳のように、ハッシュおよびファイルパス部分の周りに括弧を描き、オプションの「モード文字」部分の周りに角括弧を描きます。(実生活には括弧や括弧を含めないでください-それらは部品を見やすくするためにここにいます!)
shasum -a 256 -c <<< '(hashToCompare) [mode character](filepath)'
分解:
実際のshasumコマンドはshasum -a 256 -c
-a 256
sha256shasum
を使用するように指示します。
-c
shasum
提供された入力を「チェック」するよう指示します。
<<<
「リダイレクト」演算子と呼ばれるの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つの計算されたチェックサムが一致しませんでした
shasum -c <<< '7cb77378a0749f2a9b7e09ea62ffb13febf3759f *sample.txt'
メッセージを返します*sample.txt: FAILED open or read
。アスタリスクなしで、sample.txt: OK
。私はまだ他の場所でアスタリスクの使用の基礎を見つけることができませんでした。明確にできますか?
--binary
オプション付き)で生成されたことを示していますか?マニュアルページから:「チェックするとき、入力はこのプログラムの以前の出力である必要があります。デフォルトモードは、チェックサム、タイプを示す文字(*
バイナリ、テキスト、U
UNIVERSAL、^
BITS、?
ポータブル)、および各ファイルの名前。」だから、チェックサムとファイル名の間の文字は、チェックサムが作成されたときに設定されたモードに依存しますか?