英語フランス語スペイン語

Ad


OnWorksファビコン

csumposix - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して、OnWorks の無料ホスティング プロバイダーで cksumposix を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド cksumposix です。

プログラム:

NAME


cksum — ファイルのチェックサムとサイズを書き込む

SYNOPSIS


クスマム [file...]

DESCRIPTION


  クスマム ユーティリティは、巡回冗長検査を計算して標準出力に書き込みます。
(CRC) を入力ファイルごとに出力し、それぞれのオクテット数を標準出力に書き込みます。
ファイル。 使用される CRC は、CRC エラー チェックに使用される多項式に基づいています。
ISO/IEC 8802‐3:1996 標準 (イーサネット)。

CRC チェックサムのエンコードは、生成多項式によって定義されます。

G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

数学的には、特定のファイルに対応する CRC 値は、
次の手順:

1。 ザ n 評価されるビットは、mod 2 多項式の係数であると見なされます
M(x) 程度 n-1. これらは n ビットは、ファイルからのビットです。
重要なビットは、ファイルの最初のオクテットの最上位ビットであり、
最後のビットは、最後のオクテットの最下位ビットであり、ゼロ ビットが埋め込まれます (
必要) オクテットの整数を達成するために、XNUMX つまたは複数のオクテットが続きます
ファイルの長さをバイナリ値として表します。最下位オクテットが最初です。
この整数を表すことができる最小数のオクテットが使用されます。

2. M(x) を掛ける x32 (つまり、左に 32 ビット シフト) を G(x)使用
mod 2 除算、剰余を生成 R(x) 次数 ≤ 31。

3. の係数 R(x) は 32 ビット シーケンスと見なされます。

4. ビット シーケンスが補完され、その結果が CRC になります。

OPTIONS


なし。

オペランド


次のオペランドがサポートされます。

file チェックするファイルのパス名。 いいえ file オペランドが指定されている場合、
標準入力を使用する必要があります。

標準入力


ない場合は、標準入力を使用する必要があります file オペランドが指定されており、次の場合に使用されます。
file オペランドは '−' 実装は '−' 標準入力を意味します。
それ以外の場合は、標準入力を使用しないでください。 「入力ファイル」セクションを参照してください。

入力 ファイル


入力ファイルは、任意のファイルタイプにすることができます。

ENVIRONMENT 変数


次の環境変数は、の実行に影響を与えます。 クスマム:

言語 設定されていない、または設定されていない国際化変数のデフォルト値を指定します
ヌル。 (POSIX.1‐2008の基本定義ボリュームを参照してください。 セクション 8.2,
国際化 Variables 国際化の優先順位について
ロケールカテゴリの値を決定するために使用される変数。)

LC_ALL 空でない文字列値に設定されている場合は、他のすべての値を上書きします
国際化変数。

LC_CTYPE テキストデータのバイトシーケンスを解釈するためのロケールを決定します
文字として(たとえば、のマルチバイト文字ではなくシングルバイト
引数)。

LC_MESSAGES
の形式と内容に影響を与えるために使用する必要があるロケールを決定します
標準エラーに書き込まれる診断メッセージ。

NLSパス の処理のためのメッセージカタログの場所を決定します LC_MESSAGES.

非同期 イベント


デフォルト。

標準出力


正常に処理された各ファイルについて、 クスマム ユーティリティは次のように記述します
フォーマット:

"%u %d %s \ n "、 <チェックサム>、# of オクテット>、パス名>

ない場合 file オペランドが指定された場合、パス名とその先頭を省略します。

標準


標準エラーは、診断メッセージにのみ使用されます。

出力 ファイル


なし。

拡張済み DESCRIPTION


なし。

EXIT ステータス


次の終了値が返されます。

0 すべてのファイルが正常に処理されました。

> 0エラーが発生しました。

結果 OF エラー


デフォルト。

  フォロー中 セクション   有益です。

お申込み USAGE


  クスマム ユーティリティは通常、疑わしいファイルと信頼できるファイルをすばやく比較するために使用されます。
ノイズの多いメディアを介して送信されたファイルが確実に届くようにするなど、同じバージョン
無傷。 ただし、この比較は暗号学的に安全とは見なされません。 の
破損したファイルが元のファイルと同じ CRC を生成する可能性はわずかです。 意図的に
欺瞞は難しいですが、おそらく不可能ではありません。

にファイルを入力しますが クスマム 任意のタイプにすることができ、結果は次のようになる必要はありません
文字特殊デバイスファイルまたはシステムで記述されていないファイルタイプで予期される
POSIX.1‐2008のインターフェースボリューム。 POSIX.1‐2008のこのボリュームは、
入力時に使用されるブロックサイズ、文字特殊ファイルのチェックサムを処理する必要はありません
それらのファイル内のすべてのデータ。

アルゴリズムは、オクテットに分割されたビットストリームで表されます。 ファイルが
XNUMX つのシステム間で転送され、データ変換 (変更など) が行われます。
リトルエンディアンのバイト順からビッグエンディアンへ)、同一の CRC 値は期待できません。
そのような変換を実行する実装は拡張される可能性があります クスマム そのようなものを扱う
状況。


なし。

理論的根拠


次の C 言語プログラムは、アルゴリズムを記述するためのモデルとして使用できます。 これ
を仮定します チャリオット XNUMXオクテットです。 また、ファイル全体が使用可能であることも前提としています。
関数を XNUMX 回通過します。 これは、デモンストレーションを簡単にするために行われました。
実装モデルとしてではなく、アルゴリズム。

静的な 署名されていない 長い crctab[] = {
0x00000000、
0x04c11db7、 0x09823b6e、 0x0d4326d9、 0x130476dc、 0x17c56b6b、
0x1a864db2、 0x1e475005、 0x2608edb8、 0x22c9f00f、 0x2f8ad6d6,
0x2b4bcb61、 0x350c9b64、 0x31cd86d3、 0x3c8ea00a、 0x384fbdbd、
0x4c11db70、 0x48d0c6c7, 0x4593e01e、 0x4152fda9、 0x5f15adac、
0x5bd4b01b、 0x569796c2、 0x52568b75、 0x6a1936c8、 0x6ed82b7f、
0x639b0da6、 0x675a1011、 0x791d4014、 0x7ddc5da3、 0x709f7b7a、
0x745e66cd、 0x9823b6e0、 0x9ce2ab57、 0x91a18d8e、 0x95609039、
0x8b27c03c、 0x8fe6dd8b、 0x82a5fb52、 0x8664e6e5、 0xbe2b5b58、
0xbaea46ef、 0xb7a96036、 0xb3687d81、 0xad2f2d84、 0xa9ee3033、
0xa4ad16ea、 0xa06c0b5d、 0xd4326d90、 0xd0f37027、 0xddb056fe、
0xd9714b49、 0xc7361b4c、 0xc3f706fb、 0xceb42022、 0xca753d95、
0xf23a8028、 0xf6fb9d9f、 0xfbb8bb46、 0xff79a6f1、 0xe13ef6f4、
0xe5ffeb43、 0xe8bccd9a、 0xec7dd02d、 0x34867077、 0x30476dc0、
0x3d044b19、 0x39c556ae、 0x278206ab、 0x23431b1c、 0x2e003dc5、
0x2ac12072、 0x128e9dcf、 0x164f8078、 0x1b0ca6a1, 0x1fcdbb16、
0x018aeb13、 0x054bf6a4、 0x0808d07d、 0x0cc9cdca、 0x7897ab07、
0x7c56b6b0, 0x71159069、 0x75d48dde、 0x6b93dddb、 0x6f52c06c、
0x6211e6b5、 0x66d0fb02、 0x5e9f46bf、 0x5a5e5b08, 0x571d7dd1、
0x53dc6066、 0x4d9b3063、 0x495a2dd4、 0x44190b0d、 0x40d816ba、
0xaca5c697、 0xa864db20、 0xa527fdf9、 0xa1e6e04e、 0xbfa1b04b、
0xbb60adfc、 0xb6238b25、 0xb2e29692、 0x8aad2b2f、 0x8e6c3698、
0x832f1041、 0x87ee0df6、 0x99a95df3、 0x9d684044、 0x902b669d、
0x94ea7b2a、 0xe0b41de7、 0xe4750050、 0xe9362689、 0xedf73b3e、
0xf3b06b3b、 0xf771768c、 0xfa325055、 0xfef34de2、 0xc6bcf05f、
0xc27dede8、 0xcf3ecb31、 0xcbffd686、 0xd5b88683、 0xd1799b34、
0xdc3abded、 0xd8fba05a、 0x690ce0ee、 0x6dcdfd59、 0x608edb80、
0x644fc637、 0x7a089632、 0x7ec98b85、 0x738aad5c、 0x774bb0eb、
0x4f040d56、 0x4bc510e1、 0x46863638、 0x42472b8f、 0x5c007b8a、
0x58c1663d、 0x558240e4、 0x51435d53、 0x251d3b9e、 0x21dc2629、
0x2c9f00f0, 0x285e1d47、 0x36194d42、 0x32d850f5、 0x3f9b762c、
0x3b5a6b9b, 0x0315d626、 0x07d4cb91、 0x0a97ed48、 0x0e56f0ff、
0x1011a0fa、 0x14d0bd4d、 0x19939b94、 0x1d528623、 0xf12f560e、
0xf5ee4bb9、 0xf8ad6d60、 0xfc6c70d7、 0xe22b20d2、 0xe6ea3d65、
0xeba91bbc、 0xef68060b、 0xd727bbb6、 0xd3e6a601、 0xdea580d8、
0xda649d6f、 0xc423cd6a、 0xc0e2d0dd、 0xcda1f604、 0xc960ebb3、
0xbd3e8d7e、 0xb9ff90c9、 0xb4bcb610、 0xb07daba7、 0xae3afba2、
0xaafbe615、 0xa7b8c0cc、 0xa379dd7b、 0x9b3660c6、 0x9ff77d71、
0x92b45ba8、 0x9675461f、 0x8832161a、 0x8cf30悪い、 0x81b02d74、
0x857130c3、 0x5d8a9099、 0x594b8d2e、 0x5408abf7、 0x50c9b640、
0x4e8ee645、 0x4a4ffbf2、 0x470cdd2b、 0x43cdc09c、 0x7b827d21、
0x7f436096、 0x7200464f、 0x76c15bf8、 0x68860bfd、 0x6c47164a、
0x61043093、 0x65c52d24、 0x119b4be9、 0x155a565e、 0x18197087、
0x1cd86d30、 0x029f3d35、 0x065e2082、 0x0b1d065b、 0x0fdc1bec、
0x3793a651、 0x3352bbe6、 0x3e119d3f、 0x3ad08088、 0x2497d08d、
0x2056cd3a、 0x2d15ebe3、 0x29d4f654、 0xc5a92679、 0xc1683bce、
0xcc2b1d17、 0xc8ea00a0、 0xd6ad50a5、 0xd26c4d12、 0xdf2f6bcb、
0xdbee767c、 0xe3a1cbc1、 0xe760d676、 0xea23f0af、 0xeee2ed18、
0xf0a5bd1d、 0xf464a0aa、 0xf9278673、 0xfde69bc4、 0x89b8fd09、
0x8d79e0be、 0x803ac667、 0x84fbdbd0、 0x9abc8bd5、 0x9e7d9662、
0x933eb0bb、 0x97ffad0c、 0xafb010b1、 0xab710d06、 0xa6322bdf、
0xa2f33668、 0xbcb4666d、 0xb8757bda、 0xb5365d03、 0xb1f740b4
};

unsigned long memcrc(const unsigned char *b, size_t n)
{
/* 入力引数:
* const unsigned char* b == チェックサムへのバイトシーケンス
* size_t n == シーケンスの長さ
*/

size_t i を登録します。
符号なし c、s = 0 を登録します。

for (i = n; i > 0; −−i) {
c = *b++;
s = (s << 8) ^ crctab[(s >> 24) ^ c];
}

/* 文字列の長さで拡張します。 */
ながら (n != 0) {
c = n & 0377;
n >>= 8;
s = (s << 8) ^ crctab[(s >> 24) ^ c];
}

~s を返します。
}

``ブロック'' の数を書く歴史的な慣行は、書くことに変更されました。
オクテットの数。後者はより有用であるだけでなく、歴史的
実装は、「ブロック」が意味するものを定義する点で一貫していません。

使用されるアルゴリズムは、 クスマム。 どちらでもない
System V も BSD も 合計 アルゴリズムが選択されました。 これらはそれぞれ異なっていたので、
それぞれがこれらのシステムのデフォルトの動作であり、現実的な妥協はできませんでした。
どちらかが選択された場合、履歴アプリケーションの一部のセットが破損する可能性があります。 したがって、名前
に変更されました クスマム. 歴史的ではあるが 合計 コマンドはおそらく引き続き使用されます
長年にわたって提供されてきたシステム間での移植性を考慮して設計されたプログラムは、
新しい名前。

選択されたアルゴリズムは、ISO/IEC 8802‐3:1996 規格で使用されているアルゴリズムに基づいています。
(イーサネット) フレーム チェック シーケンス フィールド。 使用されているアルゴリズムが一致しません
の技術的定義 チェックサム; この用語は、歴史的な理由から使用されています。 長さ
ファイルは CRC 計算に含まれます。これは、長さを含めることと同等であるためです。
その CRC でイーサネットによってフィールドを保護しますが、不注意による衝突を防ぐためでもあります
異なる一連のゼロ オクテットで始まるファイル間。 XNUMX人のチャンス
異なるファイルが同一の CRC を生成することは、それらの長さが異なる場合にはるかに大きくなります。
考慮。 ファイル自体の長さとチェックサムを分離しておくと、
わずかに堅牢なアルゴリズムですが、歴史的な使用法は常に単一の数値でした
(印刷されたチェックサム) は、ファイルの署名を表します。 決定したのは
過去の使用法がより重要な考慮事項でした。

初期の提案には、抽出を含むイーサネット アルゴリズムへの変更が含まれていました。
中間結果がゼロになるたびにテーブル値。 少ないことが証明された.
現在の方法よりも堅牢であり、数学的に説明または正当化することが困難です。

使用される計算は、参照されている Sarwate の疑似コードで与えられたものと同じです。
論文。 擬似コードの表現は次のとおりです。

X <− 0; Y <− 0;
for i <− m -1 手順 -1 まで 0 do
始まる
T <− X(1) ^ A[i];
X(1) <− X(0); X(0) <− Y(1); Y(1) <− Y(0); Y(0) <− 0;
コメント: f[T] & f'[T] を表す   T番目 言葉 in  
テーブル f & f' ;
X <− X ^ f[T]; Y <− Y ^ f'[T];
end

擬似コードは、指定されたとおりに正確に再現されます。 ただし、 クスマム,
A [i] ファイルのバイト、単語を表します X & Y 単一の 32 ビットとして扱われます
値、およびテーブル f & f' 32 ビット値を含む単一のテーブルです。

参照されている Sarwate の記事でも、テーブルの生成について説明しています。

未来 道順


なし。

onworks.net サービスを使用してオンラインで cksumposix を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad