Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

cksum - Prüfsummen und Größen von Dateien schreiben

&pagelevel(4)&pagelevel

(write file checksums and sizes)


Das Kommando cksum führt für jede Eingabedatei eine CRC-Prüfung (cyclic redundancy check) durch und schreibt die Anzahl der in den einzelnen Dateien enthaltenen Oktetts in die Standardausgabe. Welche CRC-Prüfung verwendet wird, hängt vom Polynom ab, das im Ethernet-Standard, auf den verwiesen wird, zur CRC-Fehlerprüfung verwendet wird.


Syntax


cksum[ -C][ datei]

-C

berechnet die Prüfsumme wie in früheren Versionen

datei

Der Pfadname einer zu prüfenden Datei. Die Dateien können von beliebigen Dateityp sein.

datei nicht angegeben:
Die Standardeingabe wird verwendet. Die Standardeingabe muss mit CTRL+C oder @@d abgeschlossen werden.

Codierung

Die Codierung der CRC-Prüfsumme wird von dem Polynom definiert, das die Prüfsumme erstellt:

G(x) = x32+x26+x23+x22+x16+x12+x11      +x +x +x +x +x +x+12

Mathematisch wird der CRC-Wert für eine bestimmte Datei mit folgender Prozedur definiert:

  1. Die auszuwertenden n Bits werden als Koeffizienten eines Modulo 2 Polynom (Mx) des Grades n-1 aufgefasst. Diese n Bits stammen aus der angegebenen Datei. Das bedeutendste Bit ist dabei das bedeutendste Bit des ersten Oktetts der Datei, das letzte Bit ist das unbedeutendste Bit des letzten Oktetts. Dieses wird falls erforderlich mit Null-Bits aufgefüllt, damit eine ganze Zahl Oktetts erreicht wird. Ihm folgen ein oder mehrere Oktetts, die die Länge der Datei als Binärwert darstellen, wobei das unbedeutendste Oktett an erster Stelle steht. Es wird die kleinste Anzahl Oktetts verwendet, mit der die Ganzzahl dargestellt werden kann.

  2. M(x) wird mit x32 multipliziert (d.h. um 32 Bits nach links verschoben) und unter Verwendung der Modulo 2 Division durch G(x) dividiert. Das Ergebnis ist ein Rest R(x) des Grades <=31.

  3. Bei den Koeffizienten von R(x) handelt es sich um 32-Bit-Folgen.

  4. Die Bit-Folge wird vervollständigt und das Ergebnis ist die CRC-Summe.

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos cksum:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten).

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.

Stdout (Standardausgabe)

Für jede erfolgreich verarbeitete Datei erzeugt das Kommando cksum eine Ausgabe in folgendem Format:

"%u %d %s\n", <prüfsumme>, <# des oktetts>, <pfadname>

Wurde keine Datei angegeben, werden der Pfadname und sein führendes Leerzeichen ausgelassen.

Endestatus

0Alle Dateien wurden erfolgreich verarbeitet.
>0Ein Fehler ist aufgetreten.

Hinweis

Das Kommando cksum wird in der Regel für den schnellen Vergleich einer verdächtigen Datei mit einer „sicheren“ Version dieser Datei verwendet. Dadurch kann beispielsweise geprüft werden, ob Dateien, die über eine durch Geräusche gestörte Leitung übertragen wurden, intakt sind. Dieser Vergleich ist jedoch keineswegs kryptografisch sicher. Die Wahrscheinlichkeit, dass eine beschädigte Datei dieselbe Prüfsumme übergibt wie die Originaldatei ist jedoch minimal. Eine beabsichtigte Täuschung ist äußerst schwierig, aber keineswegs undenkbar.

Das Kommando cksum kann zwar Eingabedateien eines beliebigen Typs verwenden, die Ergebnisse müssen jedoch nicht dem entsprechen, was bei einer zeichenorientierten Datei oder bei einem nicht in den XSH-Spezifikationen beschriebenen Dateityp erwartet wird. Da dieses Dokument nicht die bei der Eingabe verwendete Blockgröße angibt, müssen bei der CRC-Prüfung von zeichenorientierten Dateien nicht alle Daten in diesen Dateien verarbeitet werden.

Der Algorithmus ist ein in Oktetts unterteilter Bitstrom. Wird eine Datei zwischen zwei Systemen übertragen und werden die Daten dabei geändert (z.B. bei der Übertragung von 8-Bit-Zeichen in 9-Bit-Bytes), können keine identischen CRC-Werte erwartet werden. Implementierungen, die solche Umformungen durchführen, können cksum so erweitern, dass auch diese Fälle berücksichtigt werden.

Beispiel

Für die Datei test, die eine Aufzählung der Wochentage enthält, wird die Prüfsumme berechnet.

$ cat test
Montag Dienstag Mittwoch Donnerstag Freitag Samstag Sonntag
$ cksum test
219535433 60 test

Siehe auch

sum