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

推薦する

Linux IO 多重化 epoll ネットワーク プログラミング

序文この章では、基本的な Linux 関数と epoll 呼び出しを使用して、Linux 上で実行で...

コードの互換性を高めるために、HTMLを次のように記述します。

たとえば、スクリーン リーダー ソフトウェアを必要とするユーザーなどです。フロントエンド開発者として...

集める価値のある 15 個の JavaScript 関数

目次1. 数字を逆にする2. 配列内の最大のn個の数値を取得する3. 階乗を計算する4. 現在の動作...

Linux学習におけるmkdirコマンドの詳しい説明

目次序文1. ファイルの概念に関する基礎知識2. mkdir コマンド序文最近、Linux にますま...

HTMLファイル内の中国語の文字化けとブラウザでの表示の問題

今日も私のページが文字化けしていたので、インターネットで関連する問題を検索しました。この方法はかなり...

XHTML チュートリアル、XHTML の基礎を簡単に紹介します

<br />この記事では、XHTMLとXHTMLの基礎知識について簡単に紹介します。 X...

Zabbix はどのようにして ssh 経由でネットワーク デバイス データを監視および取得するのでしょうか?

シナリオシミュレーション:ある会社の運用保守担当者は、以前購入した一連のネットワーク機器の光ポートの...

Docker ファイルの保存パス、ポート マッピング操作モードの変更

コンテナの起動コマンドを取得する方法コンテナはすでに作成されていますが、その起動パラメータ(データが...

MySQL シリーズ 7 MySQL ストレージ エンジン

1. MyISAM ストレージエンジン欠点:トランザクションはサポートされていません最小粒度ロック:...

MySQLでテーブルデータを削除する方法

MySQL でデータを削除する方法は 2 つあります。1 つは DELETE ステートメント、もう ...

Quickjs は JavaScript サンドボックスの詳細をカプセル化します

目次1. シナリオ2. 基盤となるAPIを簡素化する2.1 自動的に破棄を呼び出す2.2 VM値を作...

Taobao の商品画像切り替え効果を実現する JavaScript

JavaScriptの服装アルバム切り替え効果(Taobao商品画像切り替えに似ています)、参考ま...

React Fiberの仕組みの詳細な説明

目次React Fiberとは何ですか?なぜReact Fiberなのか? React Fiberは...

動的画像読み込み技術の応用とjquery.lazyloadプラグインの使用例

アプリケーション例ウェブサイト http://www.uhuigou.net画像の動的読み込みは目新...

Centos7でのパーティションのフォーマットとマウントの実装

Linux では、ハードディスクの追加やパーティションの再マウントといった状況に頻繁に遭遇します。こ...