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

推薦する

MySQL の frm ファイルからテーブル構造を復元する 3 つの方法 [推奨]

mysql が正常に実行されている場合、テーブル構造を表示することは難しくありません。しかし、場合...

CSS で画像アダプティブ コンテナを実装するためのサンプル コード

多くの場合、画像をコンテナのサイズに合わせて調整する必要があります。 1. imgタグ方式幅と高さを...

ネイティブJSで実装されたギャラリー機能

目次最初2番目Native Js はギャラリー機能を実装します。画像をクリックすると、対応する拡大画...

WebページでjQueryを参照する方法

CDN(コンテンツ配信ネットワーク)を通じて参照できます。 jQuery は Google と Mi...

完全なMySQL学習ノート

目次MyISAM と InnoDBパフォーマンスの低下と SQL の速度低下の理由: MySQL 実...

サイト全体を灰色にするCSSコードのまとめ

国務院は本日、新型コロナウイルス感染症との闘いで殉教した方々と犠牲者に対し、全国各民族人民の深い哀悼...

MySQL の中国語ソートの詳細と例

MySQL の漢字ソートの詳細な説明デフォルトでは、MySQL は日付、時刻、および英語の文字列の並...

linuxdeployqt を使用して Ubuntu で Qt プログラムをパッケージ化する問題を解決する

いくつかの Qt インターフェース プログラムを作成しましたが、Qt 環境がインストールされていない...

Vue.js での $emit の使用に関する詳細な説明

1. 親コンポーネントは props を使用して子コンポーネントにデータを渡すことができます。 2....

JavaScript の isPrototypeOf 関数

目次1. isPrototypeOf()例 1、オブジェクト クラス インスタンス:例 2: Hum...

JSはタイムラインの自動再生を実現する

最近、次のような効果を実装しました。再生ボタンをクリックするとタイムラインの再生が開始され、一時停止...

TypeScript におけるインターフェースと型メソッドの正しい使用例

目次序文インタフェースタイプ付録: インターフェースとタイプの違い要約する序文インターフェースとタイ...

MySQLの保存場所を新しいディスクに移行する方法

1. 新しいディスクを準備し、現在のルートパーティションと同じファイルシステムでフォーマットし、ディ...

Linuxサーバー間のリアルタイムファイル同期の実現

使用シナリオ既存のサーバー A と B の場合、サーバー A の指定されたディレクトリ (たとえば、...

データベース接続のURLの詳細な説明と概要

データベース接続のURLの詳細な説明と概要JDBC URL = プロトコル名 + サブプロトコル名 ...