Cksum
cksum
ist ein Systemprogramm unter Unix- und unixähnlichen Betriebssystemen, das Checksummen über eine Datei oder Stream erstellen kann. Der cksum Befehl liest jede Datei, die in seinen Argumenten angegeben ist. Ohne Argument wird die Standardeingabe benutzt und die Anzahl der Bytes ermittelt.
Der cksum
Befehl kann verwendet werden, um zu überprüfen, ob Dateien, die auf unzuverlässige Weise übertragen wurden, unversehrt angekommen sind.[1]
Die vom Befehl cksum
berechnete CRC-Prüfsumme ist jedoch nicht kryptographisch sicher: Es schützt zwar vor einer ungewollten Beschädigung (es ist unwahrscheinlich, dass die beschädigten Daten dieselbe Prüfsumme wie die originalen Daten haben), es ist jedoch für einen Angreifer nicht schwierig, die Datei absichtlich auf eine bestimmte Weise zu manipulieren, so dass die Prüfsumme richtig aussieht, es aber nicht ist. Unix-ähnliche Systeme enthalten normalerweise andere Befehle für kryptographisch sichere Prüfsummen, wie z. B. sha256sum.
Arbeitsweise
BearbeitenDer Standardbefehl cksum
, wie er auf den meisten Unix-ähnlichen Betriebssystemen zu finden ist (einschließlich Linux, *BSD, macOS und Solaris), verwendet einen CRC-Algorithmus, basierend auf der Ethernet-Standard-Frame-Check, und ist daher zwischen Implementierungen interoperabel. Dies steht im Gegensatz zum Unix-Befehl sum
, der nicht interoperabel und nicht kompatibel mit der CRC-32-Berechnung ist. Auf Tru64-Betriebssystemen gibt der Befehl cksum
einen anderen CRC-Wert zurück, es sei denn, die Umgebungsvariable CMD_ENV
ist auf xpg4
gesetzt.
Algorithmus
Bearbeitencksum
verwendet das Generatorpolynom 0x04C11DB7 und hängt seine Länge in Little-Endian-Darstellung an die Nachricht an.[2]
Hinweise zu Verwendung
Bearbeitencksum [FILE]...
cksum [OPTION]
Beispiel
Bearbeiten$ cksum test.txt
4038471504 75 test.txt
Dabei steht 4038471504
für den Prüfsummenwert und 75
für die Dateigröße von test.txt
.
Weblinks
BearbeitenEinzelnachweise
Bearbeiten- ↑ cksum: Print CRC checksum and byte counts. Abgerufen am 5. Juli 2015.
- ↑ cksum. In: pubs.opengroup.org.