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 ページ ターナーの実装 (フロント エンドとバックエンドを含む)

推薦する

純粋な CSS を使用してユーザーが Web ページのコンテンツをコピーするのを防ぐ方法

序文私自身の個人ブログを入力しているときに、ブログの詳細ページでさまざまなコンテンツをコピーするさま...

Dockerプライベート倉庫の構築と利用の詳細説明

イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環...

Dockerコンテナ内でホストDocker操作を呼び出して実行する

まず、この投稿は Docker 初心者向けです。もちろん、ベテランであれば記事中の分割線以降の操作方...

Dockerでイメージ情報を表示する方法

この記事では、Dockerでイメージ情報を表示する方法を学ぶ必要があります。 1. imagesコマ...

Vue ターンテーブル抽選の簡単な実装

この記事では、ホイール抽選を簡単に実装するためのVueの具体的なコードを参考までに共有します。具体的...

HTML テーブル マークアップ チュートリアル (6): 暗い境界線の色属性 BORDERCOLORDARK

表では、右下の境界線の色を個別に定義したり、セルの左上の境界線の色を定義したりできます。これら 2 ...

MySQL 8.0 バージョンで getTables がすべてのデータベース テーブルを返す問題の簡単な分析

序文この記事では、主にライブラリ内のすべてのテーブルを返すMysql8.0ドライバgetTables...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

MYSQL インストールの解凍バージョンと発生したエラーと解決策

1 インストールMYSQL 公式サイトから対応する解凍バージョンをダウンロードし、必要なディレクトリ...

トップに戻るボタンを実装するJavaScript

この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...

Centos で MySQL パスワードを変更する方法

1. MySQL ログイン設定を変更します。 # vim /etc/my.cnf文を追加: skip...

MySQL メタデータで Hive テーブル作成ステートメントのコメント スクリプトを生成する方法

序文この記事は主にMySQLメタデータ生成Hiveテーブル作成ステートメントコメントスクリプトに関す...

Vueはv-modelを使用してel-paginationコンポーネントのプロセス全体をカプセル化します。

v-model を使用してページング情報オブジェクトをバインドします。ページング情報オブジェクトに...

ハイパーリンクを開くターゲットのテスト

リンクのターゲット属性は、リンクが開く場所を決定します。その値は通常、_blank、_self、_p...

ウェブデザインにおける円形要素の使用例 25 選

本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...