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

推薦する

JavaScript はドラッグ可能なモーダルボックスを実装します

この記事では、ドラッグ可能なモーダルボックスを実装するためのJavaScriptの具体的なコードを参...

HTMLページが3秒後に自動的にジャンプする3つの一般的な方法

実際には、N 秒後にページを自動的にジャンプさせるにはどうすればよいかという問題によく遭遇します。私...

JD.com フラッシュセール効果を実現する JavaScript

この記事では、JD.comのフラッシュセール効果を実現するためのJavaScriptの具体的なコード...

Linux のごみ箱メカニズムの実装プロセスと使用方法の詳細な説明

序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...

MySQL ビューの一貫性を確保する方法の詳細な説明 (チェック オプション付き)

この記事では、例を使用して、MySQL ビューの一貫性を確保する方法 (チェック オプションを使用)...

デザインにおいて無視できないインタラクティブデザインにおける製品状態の分析

製品デザインのプロセスにおいて、デザイナーは常に写真を非常に美しくすることを好みます。仮想ページのコ...

jQuery で従業員管理登録ページを実装する

この記事では、従業員管理登録ページを実装するためのjQueryの具体的なコードを例として紹介します。...

docker run後にコンテナがExited (0)と表示される問題を解決する

Centos7 上で openresty 用の Dockerfile を作成し、ビルドしました。 d...

反応ルーティングでパラメータを渡すいくつかの方法についての簡単な説明

最初のパラメータ渡し方法は、動的ルーティングパラメータ渡しです。リンクのパス属性を設定することで、ル...

MySQLで大きなテーブルを正常に削除する方法の詳細な説明

序文テーブルを削除するには、無意識に思い浮かぶコマンドは、DROP TABLE "テーブル...

URL 内の特殊記号の意味を知っていますか?

1.# # は Web ページ内の場所を表します。右側の文字はその位置の識別子です。たとえば、ht...

Linuxは数字当てゲームのソースコードを実装する

シンプルな Linux 推測ゲームのソースコードゲームのルール:数字当てゲームは通常 2 人でプレイ...

nginxを使用して画像サイズを動的に変換し、サムネイルを生成します。

Nginx ngx_http_image_filter_module モジュール (nginx バ...

Vue3 の ref と toRef の違いを簡単に分析します

1. refがコピーされ、ビューが更新されますrefを使用してオブジェクトのプロパティ値をレスポンシ...