NAME
Jacksum (JAva ChecKSUM)
VERSION
1.7.0
SYNTAX
java -cp jacksum.jar Jacksum [Optionen]...
[Datei]...
oder
java -jar jacksum.jar [Optionen]... [Datei]...
BESCHREIBUNG
Jacksum ist ein freies und plattformunabhaengiges
Programm zum Ermitteln
und Verifizieren von Pruefsummen, CRCs und Message
Digests sowie
Zeitstempeln von Dateien. Jacksum ist komplett in
Java geschrieben.
Eine Java Laufzeitumgebung (JRE), mindestens in der
Version 1.3.1 ist
erforderlich. Es wird mindestens die Version 1.4.2
empfohlen.
Der folgende Parameter wird unterstuetzt:
Datei Eine Dateiangabe.
Wildcards werden unterstuetzt. Diese sind
von
der von Ihnen eingesetzten Shell abhaengig. Wenn keine
Datei
angegeben wurde, oder fuer die Datei das Zeichen "-"
angegeben
wurde, wird die Standardeingabe verwendet.
Die folgenden Optionen werden unterstuetzt:
-a Algo Der
Algorithmus, Default ist sha-1.
Seit
Jacksum 1.0.0
Algorithmen
koennen mit einem Pluszeichen kombiniert werden,
Beispiele:
"sha1+crc32", "bsd+crc24+xor8".
Wenn
"-a all" angegeben wird, werden alle unterstuetzten
Algorithmen
verwendet, siehe auch -F. Sobald "all" oder ein
Pluszeichen
verwendet wird, erfolgt die Ausgabe normalisiert,
die
Prüfsumme hexadezimal mit dezimaler Dateigroesse.
Beispiele:
"sha1+", "md5+"
Seit
Jacksum 1.7.0, siehe auch -A, -F
-A
Alternative. Per Default verwendet Jacksum die vom Java API
zur
Verfuegung gestellten Algorithmen - falls verfuegbar,
weil
sie vom Hersteller der JVM optimiert sind und
gewoehnlich
eine sehr gute Performance erreichen.
Wenn
-A gesetzt ist, verwendet Jacksum - falls vorhanden -
alternative
Implementierungen der Algorithmen (in purem
Java).
Tatsaechlich stehen fuer folgende Algorithmen
alternative
Implementierungen zur Verfuegung:
adler32,
crc32, md5, sha-1, sha-256, sha-384, sha-512
Seit
Jacksum 1.5.0, siehe auch -a
-c Liste Check list.
Ueberprueft die Datenintegritaet anhand einer
Liste.
Bei der Liste handelt es sich typischerweise um eine
von
Jacksum erzeugte Ausgabe. Idealerweise handelt es sich
um
eine Liste, die mit der Option -m erzeugt wurde.
Es
koennen aber auch Listen fremder Programme verarbeitet
werden.
In diesem Fall sind alle erforderlichen Parameter
anzugeben,
die die gleiche Ausgabe erzeugen koennen.
Der
Parameter -F wird ignoriert.
Um
Dateien von der Ueberpruefung auszuschliessen, koennen
Zeilen
in der Liste geloescht werden.
Seit
Jacksum 1.3.0, siehe auch -l -I und -m
-d
Directories (nur regulaere). Folge keinen symbolischen Links
unter
Linux/Unix. Ein symbolischer Link eines Unter-
verzeichnisses
auf ein uebergeordnetes Verzeichnis kann eine
Endlosschleife
beim rekursiven Traversieren unter Linux/Unix
verursachen.
Mit dieser Option koennen symbolische Links auf
Verzeichnisse
ignoriert werden. Die Option wird unter Windows
ignoriert.
Seit
Jacksum 1.5.0, siehe auch -r
-e Sequenz Expectation. Erwartet
wird, dass genau die "Sequenz"
berechnet
wird. Funktioniert mit einer Datei, der Standard-
eingabe
und mit der Option -q. Liefert OK (exit code 0) oder
MISMATCH
(exit code 1) zurueck.
Seit
Jacksum 1.4.0
Funktioniert
auch mit mehreren Dateien oder Verzeichnissen,
um
Duplikate zu finden. In diesem Fall werden alle
Fundstellen
ausgegeben.
Gross-
und Kleinschreibung von "Sequenz" spielt nur eine
Rolle,
wenn die Base 64 Kodierung (mit -E) gewaehlt wurde.
Seit
Jacksum 1.6.0, siehe auch -a, -q, -E, -x und -X
-E Kodierung Encoding. Die Pruefsumme kann wie folgt kodiert werden:
bin
Binaer
dec
Dezimal
oct
Oktal
hex
Hexadezimal mit Kleinbuchstaben (wie -x)
hexup
Hexadezimal mit Grossbuchstaben (wie -X)
base16
Base 16 (wie in RFC 3548 definiert)
base32
Base 32 (wie in RFC 3548 definiert)
base64
Base 64 (wie in RFC 3548 definiert)
bb
BubbleBabble (von OpenSSH und SSH2 verwendet)
Seit Jacksum 1.6.0, siehe auch -x und -X
-f
Files. Nur Dateien werden betrachtet, die Meldungen
"...
Is a directory" und " ... Is not a regular file" werden
damit
unterdrueckt.
Seit
Jacksum 1.0.0, siehe auch -V
-F Format Format. Setzt ein benutzerdefiniertes Ausgabeformat.
#ALGONAME
wird durch den Namen des Algorithmus
ersetzt
#ALGONAME{i}
siehe auch #CHECKSUM{i}
#CHECKSUM
wird durch den Wert des Hashes, CRCs, bzw.
der
Pruefsumme ersetzt
(abhaengig
von -a, -b, -E, -g, -G, -x, -X)
#CHECKSUM{i}
Wenn bei Option -a mehrere Algorithmen
durch
ein + voneinander getrennt wurden,
wird
der Platzhalter mit der Pruefsumme
ersetzt,
die durch einen numerischen Index
spezifiziert
werden kann. Wird keine Zahl,
sondern
der Buchstabe i angegeben, fungiert
er
als automatisch laufender Index. (1.7)
#FILENAME
wird durch den Dateinamen und evtl. Pfad
ersetzt
(abhaengig von -p und -P)
#FILENAME{NAME}
wird nur durch den Dateinamen ersetzt (1.6)
#FILENAME{PATH}
wird nur durch den Dateipfad ersetzt (1.6)
#FILESIZE
wird durch die Dateigroesse ersetzt
#FINGERPRINT
ist ein Alias fuer #CHECKSUM
#SEPARATOR
wird durch den durch -s spezifizierten
Separator
ersetzt
#TIMESTAMP
wird durch den Zeitstempel der Datei ersetzt
(abhaengig
von -t)
#QUOTE
wird durch ein Gaensefuesschen (") ersetzt
Seit
Jacksum 1.5.0, falls nicht anders angegeben,
siehe
auch -a, -E, -g, -G, -p, -P, -s, -t, -x, -X
-g Anzahl grouping.
Gruppiert die hexadezimale Ausgabe der
Pruefsumme
in "Anzahl" Bytes fuer bessere Lesbarkeit.
Nur
gueltig bei hexadezimaler Kodierung.
Die
Gruppen werden durch ein Leerzeichen bzw. durch das
mit
-G spezifizierte Zeichen voneinander getrennt
Seit
Jacksum 1.6.0, siehe auch -E, -G, -x und -X
-G Zeichen group character. Das
Zeichen zum Trennen von Gruppen.
Nur
gueltig bei gesetztem Schalter -g und hexadezimaler
Kodierung.
Seit
Jacksum 1.6.0, siehe auch -E, -g, -x und -X
-h [Sprache] Hilfe ausgeben, fuer "Sprache"
kann "en" und "de" angegeben
[Sektion] werden, Default
ist "en"; gueltige Werte fuer "Sektion" sind
Zeichenketten
wie Sektionsueberschriften oder Optionen. Mehr
Informationen
dazu finden Sie im Abschnitt BEISPIELE.
Seit
Jacksum 1.0.0, Parameter Sektion seit Jacksum 1.6.0,
Siehe
auch -v
-I String Ignorieren. Beim
Erstellen mit -m oder beim Einlesen mit -c
werden
alle Zeilen ignoriert, die mit der Zeichenkette
String
beginnen.
Seit
Jacksum 1.6.0, siehe auch -c und -m
-l
Liste. Zeige nur Dateien, die modifiziert oder geloescht
worden
sind. Nur in Kombination mit der Option -c.
Seit
Jacksum 1.4.0, siehe auch -c
-m
Metainfo. Gibt vor der eigentlichen Verarbeitung zusaetzliche
Zeilen
aus. Sie enthalten u. a. die Information der
verwendeten
Programmoptionen. So laesst sich die Ausgabe von
Jacksum
spaeter wieder als Eingabe mit Hilfe der Option -c
ohne
weitere Parameter spezifizieren zu muessen, verwenden.
Per
Default wird der Tabulator als Trennzeichen
fuer
die Ausgabe benutzt, Angaben mit -F werden ignoriert.
Seit
Jacksum 1.3.0, siehe auch -c
-o Datei Output. Die
Ausgabe erfolgt in einer Datei, statt im
Standardausgabekanal.
Das Programm beendet sich, wenn die
Datei
bereits existiert. Die Datei, die durch -o spezifiziert
wird,
wird vom Verarbeitungsprozess ausgeschlossen.
Seit
Jacksum 1.6,0, siehe auch -O, -u und -U
-O Datei Output.
Identisch mit -o, eine bereits existierende Datei
wird
jedoch ohne Warnung ueberschrieben.
Seit
Jacksum 1.6.0, siehe auch -o, -u und -U
-p
Pfad. Gibt Pfadinformationen in jeder Zeile aus, statt den
Pfad
als Ueberschrift fuer jedes Verzeichnis auszugeben,
wenn
Verzeichnisse rekursiv abgearbeitet werden (-r).
Mit
dieser Option wird die Ausgabe groesser, es wird
aber
auch einfacher, Zeilen mit anderen Programmen wie sort
zu
sortieren oder mit grep zu filtern.
Seit
Jacksum 1.4.0, siehe auch -F, -P, -r und -w
-P Zeichen Pfadzeichen. Per
Default wird das systemabhaengige Trenn-
zeichen
fuer Verzeichnisse verwendet. Unter Unix/Linux ist
dies
der Slash (/), unter Windows ist es der Backslash (\).
Wenn
ein spezielles Ausgabeformat fuer Dateien erforderlich
ist
(wie beispielsweise fuer HTML-Links) kann diese Option
verwendet
werden, um das Default-Trennzeichen fuer
Verzeichnisse
zu spezifizieren.
Seit
Jacksum 1.5.0, siehe auch -F und -p
-q [Typ:]Seq Quick sequence. Verarbeiten
einer Sequenz und danach
sofortiges
Beenden des Programms. "Typ" kann verwendet
werden,
um den Typ der Sequenz (text, hexadezimal oder
dezimal)
zu spezifizieren:
txt:Example1
hex:4578616D706C6531
dec:69,120,97,109,112,108,101,49
4578616D706C6531
Wird
type nicht angegeben, wird fuer type "hex" angenommen.
Wird
type als "txt" spezifiziert, wird der Default-
Zeichensatz
der Plattform verwendet, um die Sequenz
seq
zu interpretieren.
Seit
Jacksum 1.3.0 (nur hex), "Typ" seit Jacksum 1.5.0.
-r
Rekursive Verarbeitung von Verzeichnissen. Ohne einen Datei-
Parameter
wird das aktuelle Verzeichnis verwendet.
Seit
Jacksum 1.0.0, siehe auch -p und -w
-s Trenner Separator.
Benutzerspezifische Trennzeichenkette
(\t,
\n, \r, \", \' und \\ werden uebersetzt), der Default-
wert
ist abhaengig vom gewaehlten Algorithmus.
Seit
Jacksum 1.0.0, siehe auch -F
-S
Summary. Berechnet nur einen einzigen Wert. Alle Dateien,
die
Verzeichnisstrukturen, die Dateinamen und Zeitstempel
(falls
gewuenscht) sind Teil dieses Wertes. Siehe auch -w.
Seit
Jacksum 1.5.0, siehe auch -r und -w
-t Format Timestamp. Ein
Format fuer den Zeitstempel einer Datei. Es
wird
Java's Formatierungsklasse SimpleDateFormat verwendet.
Gueltige
Formatierungszeichen sind
G
Aera
y
Jahr
M
Monat des Jahres
w
Woche des Jahres (Kalenderwoche)
W
Woche des Monats
D
Tag des Jahres
d
Tag des Monats
F
Tag der Woche des Monats
E
Wochentag
a
Am/pm Marker
H
Stunde des Tages (0-23)
k
Stunde des Tages (1-24)
K
Stunde als am/pm (0-11)
h
Stunde als am/pm (1-12)
m
Minute der Stunde
s
Sekunde der Minute
S
Millisekunde
z
Zeitzone, generell
Z
Zeitzone nach RFC 822
Wenn
fuer form das Wort "default" gewaehlt wird, werden
Zeitstempel
mit dem Muster "yyyyMMddHHmmss" formatiert.
Seit
Jacksum 1.3.0
#SEPARATOR
wird durch den durch -s spezifizierten
Separator
ersetzt
#QUOTE
wird durch ein Gaensefuesschen (") ersetzt
Seit Jacksum 1.6.0, siehe auch -F
-u Datei Umlenkung.
Fehlermeldungen erfolgen in einer Datei, statt im
Standardfehlerkanal.
Das Programm beendet sich, wenn die Datei
bereits
existiert. Die Datei, die durch -u spezifiziert wird,
wird
vom Verarbeitungsprozess ausgeschlossen.
Seit
Jacksum 1.6,0, siehe auch -U, -o und -O
-U Datei Umlenkung.
Identisch mit -u, jedoch wird eine bereits
existierende
Datei ohne Warnung ueberschrieben.
Seit
Jacksum 1.6.0, siehe auch -u, -o und -O
-v
Version. Gibt die Version aus und beendet das Programm.
Seit
Jacksum 1.2.0, siehe auch -h
-V control verbose. Gibt
zusaetzliche Informationen aus. Wenn -V der
einzigste
Parameter ist, verhaelt er sich wie -v.
"control"
kann folgende Schluesselwoerter annehmen, die
durch
Komma zu trennen sind:
details
| nodetails Fehler werden mit oder ohne Details
ausgegeben
warnings
| nowarnings Es werden Warnungen ausgegeben oder
nicht
summary
| nosummary Am Ende wird eine Zusammenfassung
ausgegeben
oder nicht
Standardmaessig
wird "-V details,warnings,nosummary"
angenommen.
Seit
Jacksum 1.6.0, siehe auch -f und -v
-w
working directory. Der Dateiparameter wird als
Arbeitsverzeichnis
verwendet. Dies erlaubt die Erstellung
von
relativen Pfaden statt absoluten Pfaden.
Seit
Jacksum 1.6.0, siehe auch -r und -S
-x
Hexadezimale Ausgabe der Pruefsumme unter Verwendung von
Kleinbuchstaben.
Kurzform fuer "-E hex".
Seit
Jacksum 1.1.0, siehe auch -E
-X
Hexadezimale Ausgabe der Pruefsumme unter Verwendung von
Grossbuchstaben.
Kurzform fuer "-E hexup".
Seit
Jacksum 1.1.0, siehe auch -E
Folgende Algorithmen werden unterstuetzt:
adler32
Algorithmus: Adler32 [java.util.zip.Adler32]
adler-32
Laenge: 32 bits
Typ:
checksum, 1995
Seit:
Jacksum 1.0.0 (Alias "adler-32" seit 1.2.0)
Bemerkung:
Die Spezifikation fuer Adler32 kann in RFC 1950
gefunden
werden, er ist eine 32 bit Erweiterung
und
Verbesserung des Fletcher-Algorithmus, der
im
ITU-T X.224 / ISO 8073 Standard verwendet
wird.
Die alternative Implementierung
[jonelo.jacksum.algorithm.Adler32alt]
wird
verwendet,
wenn die Option -A angegeben wurde.
bsd
Algorithmus: BSD checksum Algorithmus
bsdsum
Laenge: 16 bits
sumbsd
Typ: checksum
Seit:
Jacksum 1.0.0 (Alias "bsdsum" seit 1.2.0, alias
"sumbsd"
seit 1.6.0)
Bemerkung:
Ausgabeformat ist exakt wie das properitaere
Programm
sum (Groesse in 1024 byte Bloecken).
Siehe
auch sysv
-
unter BeOS ist es /bin/sum [-r]
-
unter FreeBSD ist es /usr/bin/sum
und
/usr/bin/cksum -o 1
-
unter HP-UX ist es /usr/bin/sum -r
-
under IBM AIX ist es /usr/bin/sum [-r]
-
unter Linux ist es /usr/bin/sum [-r]
-
unter MacOS X ist es /usr/bin/sum
und
/usr/bin/cksum -o 1
-
unter Solaris ist es /usr/ucb/sum
-
under Windows gibt es kein sum
cksum Algorithmus: POSIX
1003.2 CRC Algorithmus
Laenge:
32 bits
Typ:
crc
Seit:
Jacksum 1.0.0
Bemerkung:
- unter BeOS ist es /bin/cksum
-
unter FreeBSD ist es /usr/bin/cksum
-
unter HP-UX ist es /usr/bin/cksum und
/usr/bin/sum
-p
-
unter IBM AIX ist es /usr/bin/cksum
-
unter Linux ist es /usr/bin/cksum
-
unter MacOS X ist es /usr/bin/cksum
-
unter Solaris ist es /usr/bin/cksum
-
unter Tru64 ist es /bin/cksum (CMD_ENV=xpg4)
-
unter Windows gibt es kein cksum
G(x)
= x^32 + x^26+x^23 + x^22 + x^16 + x^12 +
x^11
+ x^10 + x^8 + x^7 + x^5 + x^4 + x^2 + x +1
Der
Posix CRC laesst sich mit dem Rocksoft-Model
CRC
Algorithmus nicht genau beschreiben, da er
die
Messagelaenge in den CRC mit einrechnet.
Ohne
Messagelaenge wuerde der Code lauten:
crc:32,04C11DB7,0,false,false,FFFFFFFF
crc:<params> Algorithmus: CRC
Laenge:
8..64 bits
Typ:
crc
Seit:
Jacksum 1.7.0
Bemerkung:
Mit diesem generischen CRC koennen alle
CRC-Algorithmen
spezifiziert werden, die sich
mit
dem "Rocksoft (tm) Model CRC Algorithm"
beschreiben
lassen.
<params>
muss aus 6 Werten bestehen, die durch
Komma
voneinander getrennt werden. Diese sind:
width,poly,init,refIn,refOut,xorOut
width
- die Laenge in Bits, dezimale Angabe
poly
- das Generatorpolynom des Algorithmus,
hexadezimale
Angabe
init
- mit Welchem Wert initialisieren?
hexadezimale
Angabe
refIn
- Bytes der Eingabe spiegeln?
true
oder false
refOut
- Ausgabe (den CRC) spiegeln?
true
oder false
xorOut
- mit welchem Wert den CRC XORen?
hexadezimale
Angabe
crc8 Algorithmus:
CRC-8
crc-8
Laenge: 8 bits
Typ:
crc:8,7,0,false,false,0
Seit:
Jacksum 1.6.0
Bemerkung:
Die Implementierung dieses CRC-8 (cyclic
redundancy
check) wird beispielsweise im
System
Management Bus (SMBus) und im Free
Lossless
Audio Codec (FLAC) verwendet
(Generator-Polynom
x^8 + x^2 + x^1 + 1)
crc16 Algorithmus:
CRC-16 (ARC)
crc-16
Laenge: 16 bits
Typ:
crc:16,8005,0,true,true,0
Seit:
Jacksum 1.2.0
Bemerkung:
Die Implementierung dieses CRC-16 (cyclic
redundancy
check) ist die am weitesten
verbreitete
Form der CRC-16 Algorithmen
(Generator-Polynom
x^16 + x^15 + x^2 + 1)
Sie
wird beispielsweise von LHA verwendet
crc16_x25 Algorithmus:
CRC-16 (X.25) / Frame Checking Sequence
crc-16_x-25
Laenge: 16 bits
fcs16
Typ:
crc:16,1021,FFFF,true,true,FFFF
fcs-16
Seit: Jacksum 1.5.0 (alias
_x25, _x-25 seit 1.7.0)
Bemerkung:
Der Algorithmus FCS-16 ist in RFC1331 definiert.
crc24 Algorithmus:
CRC-24
crc-24
Laenge: 24 bits
Typ:
crc:24,864CFB,B704CE,false,false,0
Seit:
Jacksum 1.6.0
Bemerkung:
Die Implementierung dieses CRC-24 (cyclic
redundancy
check) wird beispielsweise von
Open
PGP verwendet (RFC 2440).
crc32 Algorithmus:
CRC-32 [java.util.zip.CRC32]
crc-32
Laenge: 32 bits
fcs32
Typ:
crc:32,04C11DB7,FFFFFFFF,true,true,FFFFFFFF
fcs-32
Seit: Jacksum 1.0.0 (Alias
crc-32 seit 1.2.0,
Alias
fcs32 und fcs-32 seit 1.5.0)
Bemerkung:
Der Standardalgorithmus CRC-32 (cyclic
redundancy
check) ist in ISO 3309,
ISO/IEC
13239:2002 und ITU-T V.42 definiert
und
wird in PKZip, gzip, png, Ethernet, FDDI
und
WEP verwendet. Der Algorithmus ist auch
unter
FCS (frame checking sequence) bekannt.
Eine
alternative Implementierung ist
mit
-A verfuegbar.
-
unter BeOS gibt es kein crc32
-
unter FreeBSD ist es /usr/bin/cksum -o 3
-
unter HP-UX gibt es kein crc32
-
unter Linux gibt es kein crc32
-
unter MacOS X ist es /usr/bin/cksum -o 3
-
unter Solaris gibt es kein crc32
-
unter Windows gibt es kein crc32
crc32_bzip2 Algorithmus: CRC-32
(Bzip2)
crc-32_bzip-2 Laenge:
32 bits
Typ:
crc:32,04C11DB7,FFFFFFFF,false,false,FFFFFFFF
Seit:
Jacksum 1.7.0
Bemerkung:
Dieser CRC findet in bzip2 Dateien Verwendung
crc32_mpeg2 Algorithmus: CRC-32
(MPEG-2)
crc-32_mpeg-2 Laenge:
32 bits
Typ:
crc:32,04C11DB7,FFFFFFFF,false,false,0
Seit:
Jacksum 1.4.0
Bemerkung:
Dieser CRC-32 implementiert die MPEG
Spezifikation
der CRC-32 Berechnung
crc64 Algorithmus:
CRC-64
crc-64
Laenge: 64 bits
Typ:
crc:64,1B,0,true,true,0
Seit:
Jacksum 1.5.0
Bemerkung:
Dieser Algorithmus ist im ISO 3309 Standard
definiert.
(Generator-Polynom
x^64 + x^4 + x^3 + x + 1)
elf
Algorithmus: ELF
elf32
Laenge: 32 bits
elf-32
Typ: hash
Seit:
Jacksum 1.5.0
Bemerkung:
im Unix ELF (Executable and Linkable Format)
verwendete
Hashfunktion fuer Objektdateien.
ed2k
Algorithmus eMule/eDonkey
emule
Laenge: 128 bits
edonkey
Typ: hash
Seit:
Jacksum 1.5.0
Bemerkung:
Dieser Algorithmus wird in eDonkey bzw. eMule
verwendet,
er basiert auf MD4, gibt aber unter-
schiedliche
Fingerprints fuer Dateien >= 9500 KB
zurueck.
gost Algorithmus:
GOST R 34.11-94
[org.bouncycastle.crypto.digests.GOST3411Digest]
Laenge:
256 bits
Typ:
hash, 1994
Seit:
Jacksum 1.6.0
Bemerkung:
"GOsudarstvennyi STandard", Russisch fuer
"Regierungsstandard".
veroeffentlicht 1994 als
der
Sowjetische Standard GOST-R-34.11-94.
has160
Algorithmus: HAS-160 [gnu.crypto.hash.Has160 (jonelo)]
has-160
Laenge: 160 bits
Typ:
hash, 2000
Seit:
Jacksum 1.7.0
Bemerkung:
HAS-160 ist eine kryptographische Hashfunktion
und
koreanischer TTA-Standard (Telecommunications
and
Technology Association).
haval Algorithmus: Haval
[gnu.crypto.hash.Haval]
haval_<b>_<r>
Laenge: 128, 160, 192, 224 oder 256 bits
Typ:
hash, 1992
Seit:
Jacksum 1.4.0
Bemerkung:
Haval wurde von Yuliang Zheng, Josef Pieprzyk
und
Jennifer Seberry im Jahre 1992 erfunden.
Der
Haval Message-Digest Algorithmus hat eine
variable
Laenge und eine variable Anzahl von
Runden.
Die Laenge <b> kann Werte von 128 bis
256
bits bei einer Schrittweite von 32 bits
annehmen.
Die Anzahl der Runden <r> kann von 3
bis
5 variieren. Die Default-Werte (nur "haval")
sind
128 und 3
md2
Algorithmus: MD2 [gnu.crypto.hash.MD2]
md2sum
Laenge: 128 bits
Typ:
hash, 1989
Seit:
Jacksum 1.2.0
Bemerkung:
Der MD2 Algorithmus ist in RFC 1319 definiert
Die
RSA Laboratories empfehlen in ihrem
Bulletin
#4 vom 12. November 1996 Applikationen
von
MD2 weg zu aktualisieren. Jacksum unter-
stuetzt
MD2 weiterhin aus Kompatibilitaets-
gruenden
und zu Lehrzwecken.
md4
Algorithmus: MD4 [gnu.crypto.hash.MD4]
md4sum
Laenge: 128 bits
Typ:
hash, 1990
Seit:
Jacksum 1.2.0
Bemerkung:
Der MD4 Algorithmus ist in RFC 1320 definiert
Die
RSA Laboratories empfehlen in ihrem
Bulletin
#4 vom 12. November 1996 MD4 nicht mehr
zu
verwenden. Jacksum unterstuetzt MD4 weiterhin
aus
Kompatibilitaetsgrunden und zu Lehrzwecken.
md5
Algorithmus: MD5 [java.security.MessageDigest]
md5sum
Laenge: 128 bits
Typ:
hash, 1991
Seit:
Jacksum 1.0.0
Bemerkung:
Der MD5 Algorithmus wurde 1991 von Ronald Rivest
entwickelt,
MD5 ist in RFC 1321 definiert.
[gnu.crypto.hash.MD5]
is die alternative
Implementierung
und wird verwendet, wenn -A
angegeben
wird.
-
unter BeOS ist es /bin/md5sum
-
unter FreeBSD ist es /sbin/md5
-
unter HP-UX gibt es kein md5 oder md5sum
-
unter Linux ist es /usr/bin/md5sum
-
unter MacOS X ist es /usr/bin/md5
-
unter Solaris ist es /usr/sbin/md5 (SUNWkeymg)
-
unter Windows gibt es kein md5 oder md5sum
none Algorithmus:
none
Laenge:
0 bits
Typ:
n/a
Seit:
Jacksum 1.6.0
Bemerkung
Eine Checksum wird nicht berechnet, der Inhalt
einer
Datei bleibt unberücksichtigt, es wird
nur
die Dateigroesse (und wenn gewuenscht auch
der
Zeitstempel einer Datei) ermittelt.
read Algorithmus:
read
Laenge:
0 bits
Typ:
n/a
Seit:
Jacksum 1.6.0
Bemerkung
Eine Checksum wird nicht berechnet, jedoch wird
jedes
Byte einer Datei gelesen, es wird die
Dateigroesse
(und wenn gewuenscht auch der
Zeitstempel
einer Datei) ermittelt.
rmd128
Algorithmus: RIPEMD-128 [gnu.crypto.hash.RipeMD128]
rmd-128
Laenge: 128 bits
ripemd128
Typ: hash
ripemd-128
Seit: Jacksum 1.2.0 (Alias
rmd128/rmd-128 seit 1.4.0)
ripe-md128 Bemerkung:
Ein Message Digest, siehe auch RIPEMD-160
rmd160
Algorithmus: RIPEMD-160 [gnu.crypto.hash.RipeMD160]
rmd-160
Laenge: 160 bits
ripemd160
Typ: hash, 1996
ripemd-160
Seit: Jacksum 1.2.0 (Alias
rmd160/rmd-160 seit 1.4.0)
ripe-md160 Bemerkung:
RIPEMD wurde im Projekt RIPE (RACE Integrity
Primitives
Evaluation) entwickelt, er wird
u.
a. in GnuPG eingesetzt.
rmd256
Algorithmus: RIPEMD-256 [org.bouncycastle.crypto.digests]
rmd-256
Laenge: 256 bits
ripemd256
Typ: hash
ripemd-256
Seit: Jacksum 1.6.0
ripe-md256 Bemerkung:
Ein Message Digest, siehe auch RIPEMD-160
RIPEMD-256
ist so sicher wie RIPEMD-128
rmd320
Algorithmus: RIPEMD-320 [org.bouncycastle.crypto.digests]
rmd-320
Laenge: 320 bits
ripemd320
Typ: hash
ripemd-320
Seit: Jacksum 1.6.0
ripe-md320 Bemerkung:
Ein Message Digest, siehe auch RIPEMD-160
RIPEMD-320
ist so sicher wie RIPEMD-160
sha0 Algorithmus:
SHA-0 [gnu.crypto.hash.Sha0 (jonelo)]
sha-0
Laenge: 160 bits
Typ:
hash, 1993
Seit:
Jacksum 1.6.0
Bemerkung:
Der Secure Hash Algorithmus SHA-0 wurde 1993 im
Federal
Information Processing Standard des
National
Institute for Standards and Technology
definiert
(NIST FIPS PUB 180).
Er
wurde von der NSA kurz nach seiner
Veroeffentlichung
zurueckgezogen und wurde
durch
eine verbesserte Version ersetzt, die
1995
im FIPS PUB 180-1 veroeffentlicht wurde,
sie
ist allgemein bekannt als "SHA-1".
sha
Algorithmus: SHA-1 [java.security.MessageDigest]
sha1
Laenge: 160 bits
sha-1
Typ: hash, 1995
sha160
Seit: Jacksum 1.0.0 (Alias
sha-1 seit 1.2.0, codes
sha-160
sha160
und sha-160 seit 1.5.0, Default seit
1.5.0)
Bemerkung:
Der Secure Hash Algorithmus SHA-1 wurde 1995 im
Federal
Information Processing Standard des
National
Institute for Standards and Technology
definiert
(NIST FIPS 180-1). Die alternative
Implementierung
[gnu.crypto.hash.Sha160] wird
verwendet,
wenn die Option -A angegeben wurde.
-
unter BeOS gibt es kein sha1
-
unter FreeBSD ist es /sbin/sha1
-
unter HP-UX gibt es kein sha1
-
unter Linux ist es /usr/bin/sha1sum
-
unter MacOS X gibt es kein sha1
-
unter Solaris gibt es kein sha1
-
unter Windows gibt es kein sha1
sha224
Algorithmus: SHA-224 [gnu.crypto.hash.Sha224 (jonelo)]
sha-224
Laenge: 224 bits
Typ:
hash, 2004
Seit:
Jacksum 1.6.0
Bemerkung:
Der Secure Hash Algorithmus SHA-224 wurde 2004
im
Federal Information Processing Standard des
National
Institute for Standards and Technology
definiert
(NIST FIPS 180-2).
SHA-224
ist im Grunde genommen ein SHA-256, hat
jedoch
unterschiedliche Initialwerte, der finale
Hashwert
ist abgeschnitten, um 224 Bits zu
erhalten.
Er ist auch in RFC 3874 beschrieben.
sha256
Algorithmus: SHA-256 [java.security.MessageDigest]
sha-256
Laenge: 256 bits
Typ:
hash, 2001
Seit:
Jacksum 1.3.0
Bemerkung:
Der Secure Hash Algorithmus SHA-256 wurde 2001
im
Federal Information Processing Standard des
National
Institute for Standards and Technology
definiert
(NIST FIPS 180-2). Die alternative
Implementierung
[gnu.crypto.hash.Sha256] wird
verwendet,
wenn JRE < 1.4.2 eingesetzt wird
oder
die Option -A angegeben wurde.
sha384
Algorithmus: SHA-384 [java.security.MessageDigest]
sha-384
Laenge: 384 bits
Typ:
hash, 2001
Seit:
Jacksum 1.3.0
Bemerkung:
Der Secure Hash Algorithmus SHA-384 wurde 2001
im
Federal Information Processing Standard des
National
Institute for Standards and Technology
definiert
(NIST FIPS 180-2). Die alternative
Implementierung
[gnu.crypto.hash.Sha384] wird
verwendet,
wenn JRE < 1.4.2 eingesetzt wird
oder
die Option -A angegeben wurde.
sha512
Algorithmus: SHA-512 [java.security.MessageDigest]
sha-512
Laenge: 512 bits
Typ:
hash, 2001
Seit:
Jacksum 1.3.0
Bemerkung:
Der Secure Hash Algorithmus SHA-512 wurde 2001
im
Federal Information Processing Standard des
National
Institute for Standards and Technology
definiert
(NIST FIPS 180-2). Die alternative
Implementierung
[gnu.crypto.hash.Sha512] wird
verwendet,
wenn JRE < 1.4.2 eingesetzt wird
oder
die Option -A angegeben wurde.
sum8 Algorithmus:
Sum 8
sum-8
Laenge: 8 bits
Typ:
checksum
Seit:
Jacksum 1.3.0
Bemerkung:
Wert wird durch Addition aller Bytewerte der
Eingabedaten
modulo 2^8 berechnet.
Die
Reihenfolge der bytes wird von diesem
Algorithmus
nicht beruecksichtigt!
sum16 Algorithmus: Sum
16
sum-16
Laenge: 16 bits
Typ:
checksum
Seit:
Jacksum 1.3.0
Bemerkung:
Wert wird durch Addition aller Bytewerte der
Eingabedaten
modulo 2^16 berechnet.
Die
Reihenfolge der bytes wird von diesem
Algorithmus
nicht beruecksichtigt!
sum24 Algorithmus: Sum
24
sum-24
Laenge: 24 bits
Typ:
checksum
Seit:
Jacksum 1.3.0
Bemerkung:
Wert wird durch Addition aller Bytewerte der
Eingabedaten
modulo 2^24 berechnet.
Die
Reihenfolge der bytes wird von diesem
Algorithmus
nicht beruecksichtigt!
sum32 Algorithmus: Sum
32
sum-32
Laenge: 32 bits
Typ:
checksum
Seit:
Jacksum 1.3.0
Bemerkung:
Wert wird durch Addition aller Bytewerte der
Eingabedaten
modulo 2^32 berechnet.
Die
Reihenfolge der bytes wird von diesem
Algorithmus
nicht beruecksichtigt!
sysv Algorithmus:
UNIX System V checksum algorithm
sysvsum
Laenge: 16 bits
sumsysv
Typ: checksum, 1985
Seit:
Jacksum 1.2.0, Alias "sumsysv" seit 1.6.0
Bemerkung:
Ausgabeformat ist exakt wie das propertitaere
Programm
sum (Groesse in 512 bytes Bloecken).
Siehe
auch bsd
-
under BeOS ist es /bin/sum -s
-
unter FreeBSD ist es /usr/bin/cksum -o 2
-
unter HP-UX ist es /usr/bin/sum
-
unter Linux ist es /usr/bin/sum -s
-
unter MacOS X ist es /usr/bin/cksum -o 2
-
unter Solaris ist es /usr/bin/sum
-
unter Windows gibt es kein sum
tiger Algorithmus: Tiger
[gnu.crypto.hash.Tiger128 (jonelo)]
tiger128
Laenge: 128 bits
tiger-128
Typ: hash, 1995
Seit:
Jacksum 1.6.0
Bemerkung:
Der Hashwert entspricht den ersten 128 bits
des
Ergebnisses von Tiger-192.
tiger Algorithmus: Tiger
[gnu.crypto.hash.Tiger160 (jonelo)]
tiger160
Laenge: 160 bits
tiger-160
Typ: hash, 1995
Seit:
Jacksum 1.6.0
Bemerkung:
Der Hashwert entspricht den ersten 160 bits
des
Ergebnisses von Tiger-192.
tiger Algorithmus: Tiger
[gnu.crypto.hash.Tiger]
tiger192
Laenge: 192 bits
tiger-192
Typ: hash, 1995
Seit:
Jacksum 1.4.0
Bemerkung:
entwickelt von Ross Anderson und Eli Biham, 1995
tiger2
Algorithmus: Tiger2 [gnu.crypto.hash.Tiger2 (jonelo)]
Laenge:
192 bits
Typ:
hash, 2005
Seit:
Jacksum 1.6.0
Bemerkung:
entwickelt von Ross Anderson und Eli Biham, 2005
tree:<algo> Algorithmus: Hash
Tree
Laenge:
abhaengig des unterliegenden Algorithmuses
Typ:
hash tree, 1979
Seit:
Jacksum 1.7.0
Bemerkung:
erfunden von Ralph Merkle, 1979. Ein Hash Tree
ist
ein Baum von Hashes in welchem die Blaetter
wiederum
Hashes von Datenbloecken darstellen.
Standardmaessig
wird der Tree Hash mit Base32
kodiert.
Jacksum kann den Root Hash des Tree
Hashes
berechen, dabei sind folgende Algorithmen
unterstuetzt:
tiger, tiger2
Tiger
Tree Hashes werden in P2P File Sharing-
Protokollen
und -Applikationen eingesetzt.
whirlpool0 Algorithmus:
Whirlpool-0 [gnu.crypto.hash.Whirlpool (jonelo)]
whirlpool-0
Laenge: 512 bits
Typ:
hash, 2000
Seit:
Jacksum 1.6.0
Bemerkung:
Die Whirlpool Hash Funktion, entwickelt von
Paulo
S.L.M. Barreto und Vincent Rijmen, 2000.
Dies
ist die orginale Spezifikation von
Whirlpool.
whirlpool1 Algorithmus:
Whirlpool-1 [gnu.crypto.hash.Whirlpool]
whirlpool-1
Laenge: 512 bits
Typ:
hash, 2001
Seit:
Jacksum 1.2.0
Bemerkung:
Die Whirlpool Hash Funktion, entwickelt von
Paulo
S.L.M. Barreto und Vincent Rijmen, 2001.
Dies
ist die erste Verbesserung der
Spezifikation:
"We
propose renaming the original algorithm
Whirlpool-0
and using the term Whirlpool for
the
final, modified version that uses the
improved
S-box design."
whirlpool Algorithmus:
Whirlpool [gnu.crypto.hash.Whirlpool (jonelo)]
whirlpool2
Laenge: 512 bits
whirlpool-2
Typ: hash, 2003
Seit:
Jacksum 1.6.0
Bemerkung:
Die Whirlpool Hash Funktion, entwickelt von
Paulo
S.L.M. Barreto und Vincent Rijmen, 2003
Dies
ist die zweite Verbesserung der
Spezifikation:
"Recently
[11. Maerz 2003], Shirai and Shibutani
discovered
a flaw in the Whirlpool diffusion
matrix
that made its branch number suboptimal.
Although
this flaw per se does not seem to
introduce
an effective vulnerability, the
present
document replaces that matrix
[24.
Mai 2003]"
xor8 Algorithmus:
Exklusives Oder
xor-8
Laenge: 8 bits
Typ:
checksum
Seit:
Jacksum 1.3.0
Bemerkung:
Wert wird durch ein exklusives Oder aller Werte
des
Eingabedatenstromes berechnet.
Die
Reihenfolge der bytes wird von diesem
Algorithmus
nicht beruecksichtigt!
Das Ausgabeformat von Jacksum:
Wenn
kein benutzerspezifisches Format mit -F gewaehlt wird,
wird
folgendes Ausgabeformat verwendet:
<checksum><sep>[<filesize><sep>][<timestamp><sep>]<filename>
checksum
ist eine Pruefsumme, CRC oder Fingerprint; er
ist
abhaengig von den Schaltern -a und -x, bzw. -X
sep
ist ein Feldtrenner; er kann mit -s geaendert
werden,
sonst ist er abhaengig von -a, bzw. -m
filesize
ist die Groesse der Datei; die Angabe in Bytes oder
Bloecken
ist abhaengig von -a, Messag-Digests-
Algorithmen
zeigen keine Dateigroesse an
timestamp
ist ein optionaler Zeitstempel einer Datei; er kann
mit
-t angefordert werden
filename
ist der Dateiname, Pfadangaben koennen Teil der
Ausgabe
sein, abhaengig von -p und -P
EXIT STATUS
0 - alles ist in Ordnung
1 - es gab mindestens eine
Nichtuebereinstimmung waehrend einer
Ueberpruefung
>1 - im Falle eines Parameter-, .jacksum- oder
I/O-Fehlers
BEISPIELE
jacksum -a crc32 -q "TXT:Hallo Welt!"
berechnet wird ein 32-bit
CRC von dem Text "Hallo Welt!"
jacksum -a crc32 -q 48656C6C6F20576F726C6421
berechnet wird ein 32-bit
CRC der hexadezimalen Folge
48656C6C6F20576F726C6421
("Hello World!")
jacksum -a crc32 -x *.txt
berechnet wird ein 32-bit
CRC von allen Textdateien im aktuellen
Verzeichnis. Die
Pruefsequenz wird hexadezimal ausgegeben (-x).
jacksum -a crc32 -f -t default .
neben den CRCs werden auch
Zeitstempel (-t) aller Dateien im aktuellen
Verzeichnis (.) ausgegeben.
Die Meldung "is a directory"
wird ausserdem unterdrueckt
(-f).
jacksum -f -a crc:16,1021,FFFF,false,false,0 .
es wird ein CRC mit
benutzerdefinierten Parametern verwendet: 16 Bit,
Polynom 1021 (hex, ohne
fuehrende Eins), Initialwert FFFF (hex), weder
Ein- noch Ausgabe spiegeln,
kein Xor.
jacksum -a haval_256_5 .
berechnet wird ein 256 bit
Hash mit 5 Runden mit dem Haval
Algorithmus (haval_256_5)
von allen Dateien im aktuellen Verzeichnis.
jacksum -a sha1 -s "\t" -t "EEE, MMM d, yyyy 'at'
h:mm a" .
berechnet wird ein 160 bit
SHA-1 Message-Digest von allen Dateien
im aktuellen Verzeichnis.
Der Separator (-s) ist auf den Tabulator
gesetzt ("\t"). Zeitangaben
der Dateien werden in einem
benutzerspezifischen Format
ausgegeben (-t).
jacksum -a cksum -r /mnt/share
berechnet wird ein 32 bit
CRC nach dem Unix-Standardalgorithmus cksum
von allen Dateien in
/mnt/share und dessen Unterverzeichnissen (-r)
jacksum -a md5 -f -r -m -o liste.jacksum \data
berechnet wird der
Message-Digest MD5 von allen Dateien in \data und
dessen Unterverzeichnissen
(-r), sowie Ausgabe von Metainformation (-m)
und Speicherung der Ausgabe
nach liste.jacksum, Pfade werden ABSOLUT
gespeichert.
jacksum -a md5 -f -r -m -o liste.jacksum -w \data
berechnet wird der
Message-Digest MD5 von allen Dateien in \data und
dessen Unterverzeichnissen
(-r), sowie Ausgabe von Metainformation (-m)
und Speicherung der Ausgabe
nach liste.jacksum, Pfade werden RELATIV
gespeichert.
jacksum -c liste.jacksum
Verifikation aller der in
liste.txt gespeicherten Pruefsequenzen, bzw.
Zeitstempeln. Die Datei
liste.jacksum muss mit -m erzeugt worden sein.
jacksum -a md5 -f -F "#FINGERPRINT #FILESIZE
#FILENAME" *
Berechnet den
Message-Digest MD5 von allen Dateien im aktuellen
Verzeichnis. Dabei wird
durch die benutzerdefinierte Ausgabe auch die
Dateigroesse mit
ausgegeben.
jacksum -a md5 -A -V summary bigfile.iso
Gibt u. A. auch die
Zeitdauer aus (-V summary), die benoetigt wurde, um
den MD5 Hash der Datei
bigfile.iso mit der alternativen MD5
Implementierung (-A) zu
berechnen.
jacksum -a crc32 -X -f -p -r -F "#FILENAME
#CHECKSUM" -o jacksum.sfv *
Gibt CRC-32 Werte im Simple
File Verificator (SFV) format aus.
jacksum -a ed2k -f -F
"ed2k://|file|#FILENAME|#FILESIZE|#FINGERPRINT|" *
Berechnet den eDonkey Hash
von allen Dateien im aktuellen Verzeichnis
mit einem
benutzerdefinierten Ausgabeformat (ed2k link).
jacksum -a ed2k -f -P / -F "<a
href=#QUOTEed2k://|file
|#FILENAME|#FILESIZE|#FINGERPRINT|#QUOTE>#FILENAME</a>" *
Berechnet den eDonkey Hash
von allen Dateien im aktuellen Verzeichnis
mit einem
benutzerdefinierten Ausgabeformat (HTML).
jacksum -a tree:tiger -F
"urn:#ALGONAME:#FINGERPRINT" -q hex:
Berechnet den Root Hash des
Tree Hash (auch bekannt als Merkle Hash)
mit dem Tiger Algorithmus
und leerer Eingabe.
jacksum -a sha1+crc32 .
Berechnet den sha1 Hash und
den crc32 als kombinierte Prüfsumme.
jacksum -a sha1+crc32 -F "#CHECKSUM{0}
#CHECKSUM{1} #FILENAME" .
Berechnet den sha1 Hash und
den crc32 as separate Werte.
jacksum -a all -F "#ALGONAME{i} (#FILENAME) =
#CHECKSUM{i}" .
Berechnet alle
unterstuetzten Algorithmen ueber alle Dateien.
jacksum -a all -F "#ALGONAME{i}" -q txt:
Gibt die Namen aller
unterstuetzten Algorithmen aus
jacksum -h de Syntax
Gibt die Sektion SYNTAX aus
jacksum -h de haval
Gibt alle Sektionen aus,
die Informationen ueber Haval enthalten
jacksum -h de -t
Gibt alle Informationen
ueber die Option fuer Zeitstempel aus
jacksum -h de | more
Gibt die deutsche Hilfe
mehrseitig aus ("en" fuer Englisch)
AUTOR
Copyright (C) 2002-2006, Dipl.-Inf. (FH) Johann N.
Loefflmann
mailto:jonelo@jonelo.de,
http://www.jonelo.de/java/jacksum/index_de.html
LIZENZ
This program is free software; you can redistribute
it and/or modify
it under the terms of the GNU General Public
License as published by
the Free Software Foundation; either version 2 of
the License, or any
later version.
This program is distributed in the hope that it
will be useful,
but WITHOUT ANY WARRANTY; without even the implied
warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General
Public License
along with this program; if not, write to the Free
Software
Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
Die Liste von Mitwirkenden finden Sie stets im neuesten Download und in der Copyright Sektion. Der Gründer und Leiter dieses Projektes ist Johann N. Löfflmann aus Deutschland. Seit 2002 arbeitet er in seiner Freizeit mit talentierten Menschen aus aller Welt zusammen, um Jacksum gemeinsam weiter zu verbessern.