web-dev-qa-db-ja.com

ファイルのsha256sumを取り、比較して1行でチェックするにはどうすればよいですか?

自分がダウンロードしたいと思って、すぐにスクリプトでダウンロードの整合性をチェックしているのを見つけ続けますが、sha256sumの正しい呪文を見つけることができませんでした。

MY_SHA256=e147f0392686c40cfd7d5e6f332c6ee74c4eab4d24e2694b3b0a0c037bf51dc5
sha256sum some_binary | sha256sum --check ${MY_SHA256}

新しいファイルのsha256sumを取得して、既知のハッシュとすぐに比較するにはどうすればよいですか?

13
tarabyte

アーカイブファイルと付随するチェックサムファイルをダウンロードしました。ダウンロードしたアーカイブのハッシュが、ダウンロードしたチェックサムファイルのハッシュと一致することを確認する方法を次に示します。

echo "$(cat archive.tar.gz.sha256) archive.tar.gz" | sha256sum --check --status

--statusフラグは、すべてのstdout出力を防ぎます(--quietよりも効果的です)。次に、戻りコードを使用してそれらが一致するかどうかを判断する必要があります。これは、スクリプトでこれを使用するので、とにかくこれが必要です。

4
peedee

あなたはそれを見ることができますsha256sum --checkは、以前の(通常の)sha256sum実行の出力を取得します。stdinを介してハッシュとファイル名を取得し、実際のファイルと比較します。

したがって、やるべきことは、必要な形式で出力を手動で出力することです。

$ echo "da39a3ee5e6b4b0d3255bfef95601890afd80709  motd" | sha1sum --check
motd: OK
16
user1686

例:

 echo "67574ee0039eaf4043a237e7c4b0eb432ca07ebf9c7b2dd0667e83bc3900b2cf kali-linux-2019.2-AMD64.iso" | sha256sum -c

sha256sumファイルがある場合は、直接使用できます。

sha256sum -c "kali-linux-2019.2-AMD64.iso.txt.sha256sum"

説明:

上記の例では、

echo "<known SHA 256 sum of the file> <name of the file>" | sha256sum -c

sha256sum-cオプションは、sha256sumファイルまたはSTDINからSHA256合計を読み取ることができます。 sha256sumファイルがない場合は、echoコマンドを使用して、sha256sumファイルに含まれているのと同じ詳細を提供できます。

sha256sumファイルがある場合は、直接使用できます。

sha256sum -c "<sha256sum file name>"

注:

または、shasum -a 256の代わりにsha256sumを使用できます。ここで、-aは、使用するアルゴリズムを指定します。

7
Akshay Anurag