Linux md5sumコマンドの使い方

Linux md5sumコマンドの使い方

01. コマンドの概要

md5sum - MD5検証コードを計算して検証する

md5sum コマンドは、MD5 メッセージ ダイジェスト アルゴリズム (128 ビット) を使用して、ファイルのチェックサムを計算し、チェックします。一般的に、Linux をインストールすると、コマンドライン ターミナルで直接実行できる md5sum というツールが存在します。

MD5 アルゴリズムは、ネットワーク ファイル転送の整合性を検証し、ファイルの改ざんを防ぐためによく使用されます。 MD5 は Message-Digest Algorithm 5 の略です。このアルゴリズムは、任意の長さの情報をビットごとに計算し、バイナリ長 128 ビット (16 進数では 32 ビット) の「フィンガープリント」(または「メッセージ ダイジェスト」) を生成します。異なるファイルで同じメッセージ ダイジェストが生成される可能性は、非常に低いです。

02. コマンド形式

使用方法: md5sum [オプション]... [ファイル]...

03. 共通オプション

MD5検証コードを表示または検証します。FILEがない場合、またはFILEが-の場合、
標準入力から読み取ります。

-b, --バイナリ
バイナリモードでファイルを読み取ります(DOS/Windows でのデフォルト)
-c, --チェック
指定されたファイルのMD5検証コードを検証します
-t, --テキスト
ファイルをテキストモードで読み取る(デフォルト)
次の 2 つのオプションは、検証コードを確認するときにのみ使用されます。
- 状態
出力は表示されず、戻りコードが成功か失敗かを示します。
-w、--警告
MD5チェックサム行の形式が正しくないことを警告する
--help このヘルプを表示して終了する
--バージョン
バージョン情報を表示して終了する

04. 参考例

4.1 ファイルのmd5値を生成する

[deng@localhost テスト]$ md5sum /etc/passwd
134edeaf80dc359ed33dc53eb8967920 /etc/passwd
[deng@localhost テスト]$

4.2 複数のファイルのmd5値を生成する

[deng@localhost テスト]$ md5sum * 
134edeaf80dc359ed33dc53eb8967920 パスワード
134edeaf80dc359ed33dc53eb8967920 パスワード1
[deng@localhost テスト]$

注: md5sum はファイルの内容を確認するものであり、ファイル名とは関係ありません**

4.3 異なるモードで同じファイルのmd5値を計算する

[deng@localhost test]$ ファイル パスワード 
パスワード: ASCII テキスト
[deng@localhost テスト]$ md5sum パスワード
134edeaf80dc359ed33dc53eb8967920 パスワード
[deng@localhost テスト]$ md5sum -b パスワード
134edeaf80dc359ed33dc53eb8967920 *パスワード
[deng@localhost テスト]$ md5sum -t パスワード
134edeaf80dc359ed33dc53eb8967920 パスワード
[deng@localhost テスト]$

読み取りモードは異なりますが、md5 を計算するときはビットごとにチェックされるため同じです。次のテキスト ファイルは、どのモードで読み取っても同じ md5 になります。

4.4 md5 リダイレクト

生成された md5 値を指定されたファイルにリダイレクトします。通常、ファイル拡張子は .md5 です。

[deng@localhost テスト]$ md5sum パスワード > パスワード.md5
[deng@localhost テスト]$ md5sum パスワード
134edeaf80dc359ed33dc53eb8967920 パスワード
[deng@localhost テスト]$ cat passwd.md5 
134edeaf80dc359ed33dc53eb8967920 パスワード
[deng@localhost テスト]$ 

4.5 複数のファイルのmd5を指定したファイルにリダイレクトする

[deng@localhost テスト]$ md5sum * > d.md5
[deng@localhost テスト]$ cat d.md5 
134edeaf80dc359ed33dc53eb8967920 パスワード
134edeaf80dc359ed33dc53eb8967920 パスワード1
8b7e9d66d329c74071b8a01800f4deb9 パスワード.md5
[deng@localhost テスト]$ 

4.6 リダイレクトの追加

ここで、新しいファイルlsを追加し、そのmd5を個別に計算し、そのmd5をファイルに追加します。

[deng@localhost テスト]$ md5sum /bin/ls >> d.md5
[deng@localhost テスト]$ cat d.md5
134edeaf80dc359ed33dc53eb8967920 パスワード
134edeaf80dc359ed33dc53eb8967920 パスワード1
8b7e9d66d329c74071b8a01800f4deb9 パスワード.md5
a78c13d806e594dc4014d145d689f23d /bin/ls
[deng@localhost テスト]$ 

4.7 md5検証

-c オプションはファイル md5 を検証します。検証中は、生成された md5 に基づいて検証が実行されます。現在のファイルの md5 を生成し、以前に生成された md5 と比較します。一致している場合は OK を返し、一致していない場合はエラー メッセージを返します。

[deng@localhost テスト]$ md5sum -c d.md5 
passwd: OK passwd1: OK passwd.md5: OK /bin/ls: OK [deng@localhost test]$ 

ファイルを変更した後、ファイルmd5が変更されます

[deng@localhost テスト]$ vim パスワード
[deng@localhost テスト]$ md5sum -c d.md5 
passwd: 失敗 passwd1: ok passwd.md5: ok /bin/ls: ok md5sum: 警告: チェックサムの不一致が 1 つあります [deng@localhost test]$ 

4.8 出力を表示せず、戻りコードを使用して成功か失敗かを示す

–status、検証情報を表示せず、コマンドの戻り値に基づいて判断します。検証が一致している場合は0を返し、一致していない場合は1を返します。

[deng@localhost テスト]$ md5sum -c --status d.md5 
[deng@localhost test]$ echo $?
1
[deng@localhost テスト]$ 

4.9 問題がないと確認されたファイルを除外する

[deng@localhost test]$ md5sum -c d.md5 | grep -v "OK"
md5sum: 警告: 1 チェックサム不一致 passwd: 失敗 [deng@localhost test]$

特別な指示
1) md5sumはファイルの内容を検証するものであり、ファイル名が同じかどうかとは関係ありません。

2) md5sum 値はビットごとに検証されるため、ファイルが大きいほど検証時間が長くなります。

要約する

md5sum を使用してファイル検証コードを生成し、異常なファイル転送 (ネットワーク転送、コピー、異なるローカル デバイス間の転送) によって発生したファイル コンテンツの不一致を検出します。

業務実践の応用シナリオ:

変更が開発者の言ったことと一致しているかどうかを確認するには、rc1.tar.gz パッケージと rc2.tar.gz パッケージを比較する必要があります。

1. パッケージを受け取って正しいことを確認する

パッケージを入手したら、パッケージのMD5値を確認します: md5sum rc*.tar.gz

2. 指定されたディレクトリに解凍する

対応するディレクトリが存在することを確認してください

tar -zxvf rc1.tar.gz -C ./test_rc1
tar -zxvf rc2.tar.gz -C ./test_rc2

3. 各ファイルのMD5値を再帰的に生成する

./test_rc1 -type f -print0| xargs -0 md5sum >> rc1_md5.txt を検索します。
./test_rc2 -type f -print0| xargs -0 md5sum >> rc2_md5.txt を検索します。

4. 2つのファイルのMD5値を比較する

diff -c rc1_md5.txt rc2_md5.txt または UltraCompare Professional を使用して結果を比較します

上記は Linux md5sum コマンドの詳細な使用方法です。Linux md5sum コマンドの詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • Ruby はファイルの md5sum を計算しながらフォルダーを反復処理します
  • Pythonでmd5sumを使用してディレクトリコード共有内の同じファイルをチェックする

<<:  Vueでファジークエリを実装する方法の簡単な例

>>:  React ページ ターナーの実装 (フロント エンドとバックエンドを含む)

推薦する

背景画像の配置におけるbackground-position属性の自己理解

最近、プロジェクトではラベルやボタンなどの断片的な画像をたくさん使用する必要があります。また、CSS...

MySQLは外部SQLスクリプトファイルのコマンドを実行します

目次1. SQLコマンドを含むSQLスクリプトファイルを作成する2. SQLスクリプトファイルを実行...

Dockerコンテナがホストポートにアクセスできない場合の解決策

最近、仕事中に問題が発生しました。Docker コンテナがホストの redis にアクセスできず、t...

MySQL マスタースレーブレプリケーションでエラーをスキップする方法

1. 従来のbinlogマスタースレーブレプリケーション、エラー報告をスキップする方法 mysql&...

Flex レイアウトで適応型ページを作成する (構文と例)

Flex レイアウトの紹介英語の Flex はフレキシブル ボックス、つまり伸縮性のあるボックスを...

mysql-8.0.11-winx64.zip の詳細なインストール チュートリアル

zip インストール パッケージをダウンロードします。 MySQL8.0 For Windows z...

JavaScript でオブザーバー パターンを実装する方法

目次概要オブザーバーパターンの応用シナリオオブザーバーパターンの実装要約する概要オブザーバー パター...

mysql 5.7.18 winx64 パスワード変更

MySQL 5.7.18 が正常にインストールされた後、バージョン 5.7 では空のパスワードでのロ...

VMware Workstation 14 Pro(仮想マシン)にシステムをインストールする方法の詳細な説明

この記事では、VMware Workstation 14 Pro (仮想マシン) にシステムをインス...

JavaScript プロトタイプとプロトタイプチェーンの詳細

目次1. プロトタイプ(明示的なプロトタイプ) 2. __proto__ (暗黙のプロトタイプ) 3...

Docker 階層化パッケージを使用して Spring Boot を設定する方法

Spring Boot プロジェクトでは、Docker コンテナ、jar、war の階層化パッケージ...

ウェブデザインにおけるインタラクション: ページングの問題に関する簡単な説明

機能: 前のページまたは次のページにジャンプします。要素: ページングの基本要素は、前のページ + ...

HTML DOM入門_PowerNode Javaアカデミー

DOMとは何ですか? JavaScript を使用すると、HTML ドキュメント全体を再構築できます...

JS 日付コントロール My97DatePicker の基本的な使い方

My97DatePicker は非常に柔軟で使いやすい日付コントロールです。使い方はとても簡単です。...

docker CMD/ENTRYPOINT が sh スクリプトを実行する問題の解決策: not found/run.sh:

Dockerfile の設定に問題はありませんが、ENTRYPOINT コマンドを実行するとエラー...