jonelo logo
separator


Home
   Neuigkeiten
   Suchen
Privat
   Über mich...
   Wer war Nepomuk?
   USA Travel Tips
Java Software
   BigAl
   Jacksum
   Jarfix
   NumericalChameleon
   Sugar
   FAQ
   Tipps
Gedichte
   Angst
   Dummheit
   Der Hamster
   Der Moment
   Die Briefmarke
   Heißer Sand
   Weihnachten
Kontakt
   E-Mail
   Gästebuch
   Impressum

disclaimer
[Beschreibung] [Zweck] [Features] [Copyright] [Anforderungen] [Download] [Was ist neu?] [Installation] [FAQ] [Handbuch] [Historie] [Kontakt] [Links]

Jacksum  1.7.0

ein freies, plattformunabhängiges Open Source Projekt
seit 2002

for English click here

Beschreibung:

Jacksum ist ein freies und plattformunabhängiges Programm zum Ermitteln und Verifizieren von Prüfsummen, CRCs und Hashes, Message Digests sowie Zeitstempeln von Dateien. Jacksum ist eine Wortneuschöpfung aus den Worten JAva and ChecKSUM.

Es unterstützt die bekanntesten 58 Standard Algorithmen  (Adler32, BSD sum, Bzip2's CRC-32, POSIX cksum, CRC-8, CRC-16, CRC-24, CRC-32 (FCS-32), CRC-64, ELF-32, eMule/eDonkey, FCS-16, GOST R 34.11-94, HAS-160, HAVAL (3/4/5 passes, 128/160/192/224/256 bits), MD2, MD4, MD5, MPEG-2's CRC-32, RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320, SHA-0, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, Tiger-128, Tiger-160, Tiger, Tiger2, Tiger Tree Hash, Tiger2 Tree Hash, Unix System V sum, sum8, sum16, sum24, sum32, Whirlpool-0, Whirlpool-1, Whirlpool and xor8).

Jacksum unterstützt das Modell "Rocksoft (tm) Model CRC Algorithm". Damit lassen sich benutzerdefinierte CRC Algorithmen berechnen. Jacksum unterstützt außerdem die Kombination von mehreren Algorithmen.

Jacksum hat seine Sourcen geöffnet und wird unter den Bedingungen der GNU GPL veröffentlicht. Jacksum ist OSI Certified Open Source Software. OSI Certified ist ein Zertifizierungszeichen der Open Source Initiative.

Jacksum ist plattformunabhängig, weil es komplett in Java geschrieben ist. Die Software läuft unter jeder Plattform, die eine passende Java Laufzeitumgebung bereitstellt.

Lesen Sie, was Leute rund um den Globus über Jacksum denken ...
 

Zweck:

Mit Jacksum können Sie überprüfen, ob ein Dateitransfer erfolgreich war. Wenn Sie Software oder andere große Datenmengen (z. B. CD-images, so genannte iso-Dateien) vom Internet herunterladen, wird oft auch eine Prüfsumme, bzw. ein CRC oder Hashcode angegeben. Mit Jacksum können Sie eine solche Prüfsumme bzw. einen solchen Hashcode (Fingerprint) von Ihrer lokalen Kopie berechnen. Wenn beide Prüfsequenzen übereinstimmen, wissen Sie, daß während des Dateitransfers alles gut gegangen ist.

Da Jacksum rekursive Dateiverarbeitung unterstützt, können Sie zwei Verzeichnisbäume miteinander vergleichen. Sie können damit überprüfen, ob Ihre Kopien und Backups mit der ursprünglichen Quelle übereinstimmen, sogar wenn Sie keinen gleichzeitigen Zugriff auf die Datenträger besitzen. Vergleichen Sie beispielsweise den Inhalt von zwei DVDs mit nur einem einzigen Laufwerk.

Da Jacksum ein plattformunabhängiges und kompatibles Dateiformat verwendet, kann es Ihnen helfen, gebrannte Daten auf CD-ROMs oder DVDs sogar nach Jahren noch zu verifizieren.

Jacksum kann Sie unterstützen bei der unidirektionalen Dateisynchronisation, sogar wenn zwischen beiden Computern keine Verbindung besteht.

Jacksum kann Ihnen helfen, inkrementelle Backups zu erzeugen.

Wenn Sie Entwickler sind, unterstützt Sie Jacksum bei der Erstellung von Patches für Ihre Kunden.

Sie können Jacksum auch für die "intrusion detection" verwenden, weil Jacksum überprüfen kann, ob und welche Dateien auf Ihrem System geändert oder gelöscht wurden. Jacksum kann außerdem nicht nur den Inhalt von Dateien auf Integrität überprüfen, sondern auch den Zeitstempel jeder Datei.

Für nähere Informationen lesen Sie bitte die Sektion FAQ.
 

Features:

Wirklich freie Software:

Multi-Plattform Support:
  • Jacksum ist plattformunabhängig (100 % Java), und läuft auch in der Praxis unter allen bekannten Betriebssystemen wie Windows (95/98/ME/2000/2003/NT/XP), Linux (Debian, Fedora, Gentoo, JDS, Knoppix, Linspire, Red Hat, Slackware, SuSE, Turbolinux, Mandriva, Ubuntu, etc.), Unix (BSD, HP-UX, Mac OS X/PPC, Mac OS X/x86, Solaris/SPARC, Solaris/x86, etc.) oder jedes andere Betriebssystem (e.g. OS/2) mit einer Java Laufzeitumgebung (JRE)
  • Hält Kompatibilität mit Java 1.3.1, verwendet alber auch die Vorteile von Java 1.4.2 oder Java 5.0 falls vorhanden. Sie läuft auch auf absolut freien Plattformen mit der neuesten Version von gij oder kaffe
  • Kann in 32 und 64 bit Umgebungen eingesetzt werden. Ja, Jacksum ist 64 bit ready, Sie brauchen lediglich eine 64 bit JRE.
  • Jacksum ist large file aware, d. h. es können Dateien bis zu einer Größe von 8 Exabyte (8 Milliarden Gigabyte) verarbeitet werden - vorausgesetzt Ihr Betriebssystem bzw. ihr Dateisystem ist ebenfalls in der Lage, solch große Dateien zu verarbeiten.
  •  Jacksum ist sich bewusst über Spezialdateien wie FIFOs und symbolischen Links unter Linux/Unix oder System-Folders unter Windows
  • Arbeitet mit dem SendTo-feature unter Windows zusammen
Generelle Programmerkmale:
  • Es unterstützt die bekanntesten 58 checksum Algorithmen, einschließlich starker Einweg-Hash-Algorithmen (Adler32, BSD sum, Bzip2's CRC-32, POSIX cksum, CRC-8, CRC-16, CRC-24, CRC-32 (FCS-32), CRC-64, ELF-32, eMule/eDonkey, FCS-16, GOST R 34.11-94, HAS-160, HAVAL (3/4/5 passes, 128/160/192/224/256 bits), MD2, MD4, MD5, MPEG-2's CRC-32, RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320, SHA-0, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, Tiger-128, Tiger-160, Tiger, Tiger2, Tiger Tree Hash, Tiger2 Tree Hash, Unix System V sum, sum8, sum16, sum24, sum32, Whirlpool-0, Whirlpool-1, Whirlpool and xor8).
  • Algorithmen sind sehr schnell (vergleichen Sie Jacksum's Performance ruhig mit anderen Tools)
  • Es ist dank Open Source sehr stabil und wird von vielen Menschen eingesetzt und getestet
  • Kann Prüfsummen, CRCs und Hashes (fingerprints) berechnen von Dateien, Text, hexadezimalen und dezimalen Sequenzen
  • Die Rekursive Verarbeitung von Verzeichnissen wird unterstützt
  • Es kann den sowohl den Inhalt als auch Zeitstempel von Dateien verifizieren
  • Jacksum hilft Ihnen, Duplikate von Dateien zu finden
Kompatibilität und Anpassbarkeit:
  • Ausgabe ist 100% kompatibel zu den Unix-Standard-Tools wie sum, cksum, md5sum und sha1sum.
  • Das Ausgabeformat kann Ihren Wünschen angepasst werden (fügen Sie beispielsweise die Dateigröße zur MD5 Ausgabe hinzu, erzeugen Sie SFV Dateien oder erstellen Sie Links im eDonkey-Format)
  • Es unterstützt ein offenes, plattformunabhängiges und kompatibles Dateiformat, damit es möglich ist, Dateien und Zeitstempel anhand einer Liste zu überprüfen, sogar nach mehreren Jahren oder wenn Sie Ihr Betriebssystem gewechselt haben sollten.
  • Mehrere Encodings (hex, BASE 16, BASE 32, BASE 64 und BubbleBabble) für alle Prüfsummen, CRCs und One-Way-Hashes werden unterstützt
Unterstützung für Entwickler:
  • Es steht ein offenes API zur Verfügng, damit Sie Jacksum in ihren eigenen freien Projekten verwenden können
  • Javadoc kann von den Sourcen generiert werden
  • Ant-script ist verfügbar und kann am einfachsten mit Netbeans verwendet werden


Copyright:

Jacksum v1.7.0 Copyright (C) 2002-2010
Dipl.-Inf. (FH) Johann Nepomuk Löfflmann

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.
 

Anforderungen: GetJava Download Button
Um Jacksum laufen zu lassen, benötigen Sie eine Java Laufzeitumgebung (JRE). Diese kann ebenfalls kostenlos heruntergeladen werden. Es ist mindestens die Version 1.3.1 erforderlich. Empfohlen wird aber JRE 6 oder neuer. Laden Sie sich ein passenes JRE für Ihr Betriebssystem herunter.
 

Download:

Jacksum is komplett in Java geschrieben , deshalb ist es plattformunabhängig und läuft unter allen Betriebssystemen mit einer Java Laufzeitumgebung.

Lesen Sie bitte vorher die Abschnitte Anforderungen und Copyright. Sie müssen den Bedingungen der GNU General Public Licence zustimmen, wenn Sie Jacksum downloaden und benutzen möchten. Die Datei enthält auch alle Sourcecodes zu Jacksum.
 
jacksum-1.7.0.zip (30.07.2006)

MD5:         f1cf99f9e2b68016668dce4c4d51d346
SHA-1:       e3d840fa7b9949003ca731c7ce3e0281c350d821
Size:        446595 bytes

Optional:
jacksum-1.7.0-windows-explorer-integration-1.3.0.zip (14. August 2010)

Filesize:    225913 bytes
MD5:         8b28f643ef8709728ecf454f32750465
SHA1:        714c6ca1c58316bf4ed91a5ec4b7b607807e93f1
SHA256:      0bb88c6116d52ae60750b059d8e5ae40371079871ec28f240b3806eff47f57b9

funktioniert mit dem Explorer unter Windows NT/2000/2003/XP/2008/Vista/7

jacksum-1.7.0-linux-file-browser-integration-1.2.1.tar.bz2 (13.11.2010)

Filesize:    201807 bytes
MD5:         cdbeee4cba45756d07dbae73d382e9d5
SHA1:        64611552d71ed3b11d2c62474565bbf2f25db998
SHA256:      459d52f12c5b0dd6a205240637a9bbf31a60832af8b011d1226bd881fbcbc5a2

funktioniert mit Konqueror unter KDE 3.x, Konqueror unter KDE 4.x und Dolphin unter KDE 4.x (z. B. unter Kubuntu), Gnome Nautilus 2.x (z. B. unter Ubuntu), Thunar (XFCE, z. B. unter Xubuntu) und ROX-Filer 2.x (z. B. unter Puppy Linux)

jacksum-1.7.0-macosx-finder-integration-1.0.2.tar.bz2 (14.11.2010)

Filesize:    193963 bytes
MD5:         9e87bc974279f9eca84a382392e0da0b
SHA1:        22874026f1b06300e7d807431c428d1a5c6dfe23
SHA256:      406bc27a23e98bb07cb7c029fab44e207c89c6c0148228abde5fe93113c9fd60

Dieses Script wurde unter Mac OS X 10.4 (Tiger), Mac OS X 10.5 (Leopard) und Mac OS X 10.6 (Snow Leopard) für den Finder getestet.

Alle optionalen Pakete enthalten einen betriebssystemspezifischen Installer und das Jacksum binary.
Ältere Version gibt es auf sourceforge.net
 

Installation:

1. Besuchen Sie www.java.com und installieren Sie das neueste Java Runtime Environment, siehe auch Anforderungen.

2. Laden Sie sich die Datei jacksum-1.7.0.zip herunter und entpacken Sie diese. Wenn Sie Windows-Anwender sind, besuchen Sie die GnuWin32 Projektwebseite, um ein unzip Programm kostenlos zu erhalten..

   cd Downloadverzeichnis
   unzip jacksum-1.7.0.zip

3. Starten Sie Jacksum in einem Terminal (unter Windows heißt sie "Eingabeaufforderung").

   cd Installationsverzeichnis
   java -jar jacksum.jar

4. Um das Programm mit mehr Komfort wie folgt von jedem Verzeichnis heraus aufrufen zu können,

   jacksum

müssen Sie die Script- bzw. Batchdatei, die Teil der Distribution ist, modifizieren und in ein Verzeichnis abspeichern, das von der Betriebssystemvariablen PATH gefunden wird. Siehe dazu die FAQ "Wie kann ich Jacksum einfach nur mit 'jacksum' aufrufen?".
 

FAQ:

Warum soll ich Jacksum verwenden und nicht ... ?

Ihre Daten sind unersetzlich. Jacksum hilft Ihnen, die Kontrolle über die Datenintegrität Ihrer Daten zu behalten. Jacksum ist zuverlässig und bietet eine Menge an einzigartigen Merkmalen. Wenn Sie schlau sind, vergleichen Sie die Merkmale von ähnlichen Tools mit denen von Jacksum. Dann können sie obige Frage selbstsicher beantworten ;-)

Gibt es eine graphische Oberfläche für Jacksum?

Zusätzlich zum Kommandozeileninterface unterstützt das Jacksum Projekt auch die Integration in die berühmten Dateibrowser Windows Explorer, KDE Konqueror, Gnome Nautilus, ROX-Filer und Finder auf Mac OS X.

Mehr und mehr Bestrebungen sind in Gange. Fünf Studenden an der ETH Zürich in der Schweiz haben an einem SWT basierten GUI Prototypen für Jacksum gearbeitet. Zusätzlich zu den kontinuierlichen Verbesserungen der Dateibrowserintegration ist auch ein Swing basiertes GUI geplant, da SWT nicht auf allen Platformen zur Verfügung steht.

Jacksum's primäre Benutzerschnittstelle ist jedoch nach wie vor die Kommandozeile. Sie unterstützt die Kompatibilität mit anderen populären auf der Kommandozeile basierten Programmen unter Unix, wie cksum, sha1sum, sum oder md5sum. Jacksum wird stets das Kommandozeileninterface unterstützen, da es den Einsatz des Programms mit Cronjobs und Pipes ermöglicht und seine Möglichkeiten in Kombination mit anderen nützlichen kommandozeilenbasierten Tools wie grep, sort, unique oder zip voll ausspielen kann und eine Integration in Ihrem bevorzugtem Browser möglich macht.

Jacksum unterstützt auch ein öffentliches API. Es kann von anderen Projekten und graphischen Benutzeroberflächen benutzt werden.
Siehe auch "Kann ich Jacksum in meinem Projekt verwenden?" und "Software, die Jacksum verwendet"
 

Wie kann ich Jacksum einfach nur mit "jacksum" aufrufen?

Unter UNIX definieren Sie sich einen alias oder schreiben Sie sich ein script, das folgende zwei Zeilen enthält:
#!/bin/sh
java -jar "/pfad zu jacksum/jacksum.jar" "$@"

Stellen Sie sicher, dass das Script über die Umgebungsvariable PATH gefunden wird und die Rechte des Scriptes auf ausführbar gesetzt sind (man chmod).

Unter Windows schreiben Sie sich eine Batchdatei, die über die Umgebungsvariable PATH gefunden werden muss:
@echo off
java -jar c:\pfad zu jacksum\jacksum.jar %*

Unter Linux ist es wie mit UNIX. Wenn Sie z. B. Ubuntu 9.04 verwenden, können Sie Jacksum ganz einfach installieren mit folgendem Kommando:

sudo apt-get install jacksum

Hier ein Screenshot der Installation unter Ubuntu 9.04. Vielen Dank an dieser Stelle an all die Unterstützer, die das Debian-Jacksum-Paket geschnürt haben und es für die Ubuntu-Anwender zur Verfügung stellen!


 

Wie kann ich Jacksum im Windows Explorer benutzen?

Laden Sie das Programmpaket für Windows herunter und rufen Sie den darin enthaltenen Installer auf. Der Installer stattet den Windows Explorer mit den häufigsten benutzten Funktionen von Jacksums aus. Während der Installation wird auch ein Uninstaller erstellt, mit dem Sie die Funktion auch wieder restlos entfernen können. Der Installer und den Uninstaller lassen die Registry unberührt. Selektieren Sie alle Dateien im Windows Explorer, deren Prüfsumme sie ermitteln oder verifizieren wollen, klicken Sie dann auf die rechte Maustaste und wählen einen Eintrag aus dem "Senden an"-Menü aus.


Obiges Bild zeigt die Jacksum Windows Explorer Integration 1.1.0. Seit Windows Vista ist es leider nicht mehr möglich, Verzeichnisse zur Gruppierung von Executables zu verwenden.Entsprechend beginnen die Jacksum-Einträge seit der Windows-Explorer Integration 1.2.0 für Jacksum eine Ebene früher:

Send To on Vista

Tipp: Löschen Sie nicht benötigte Verknüfungen im Senden an-Menü, um die Liste für Sie überschaubar zu halten.Wählen Sie dazu Start -> Ausführen -> shell:sendto -> OK, um Ihren individuellen Send To-Ordner zu sehen.

Wie kann ich Jacksum im KDE Konqueror verwenden?

Laden Sie das Programmpaket für Linux herunter, entpacken und starten es:

bunzip2 < jacksum-*.bz2 | tar xfv -
cd jacksum-file-browser-integration/
./jacksum-file-browser-integration.sh

Das interaktive Skript installiert (und deinstalliert) Jacksum im KDE Konqueror. Das Bildschirmfoto wurde unter SUSE Linux 10 aufgenommen:

Wie kann ich Jacksum im Gnome Nautilus verwenden?

Laden Sie das Programmpaket für Linux herunter, entpacken und starten es:

bunzip2 < jacksum-*.bz2 | tar xfv -
cd jacksum-file-browser-integration/
./jacksum-file-browser-integration.sh

Das interaktive Skript installiert (und deinstalliert) Jacksum in Gnome Nautilus. Das Skript funktioniert sowohl unter Linux und Solaris. Das Bildschirmfoto wurde unter Ubuntu Linux 5.10 aufgenommen:


 

Wie kann ich Jacksum mit dem ROX-Filer (z. B. unter Puppy Linux) verwenden ?

Laden Sie das Programmpaket für Linux herunter, entpacken und starten es:

bunzip2 < jacksum-*.bz2 | tar xfv -
cd jacksum-file-browser-integration/
./jacksum-file-browser-integration.sh

Das interaktive Skript installiert (und deinstalliert) Jacksum in Gnome Nautilus. Das Bildschirmfoto wurde unter Puppy Linux  4.3.1 mit dem ROX-Filer 2.6.1 aufgenommen.

Das Senden-an-Menü in ROX-Filer ist einfach zu öffnen, wenn Sie die Shift-Taste halten und mit der rechten Maustaste auf eine Datei klicken.

Jacksum on ROX-Filer

Ich habe die Jacksum File Browser Integration für den ROX-Filer unter Puppy Linux installiert, aber wenn ich "All algorithms" auswähle, passiert gar nichts.

Unter Puppy Linux ist die Java Laufzeitungebung, die durch /usr/local/bin/java angesteuert wird leider inkompatibel zum Java Standard.
Installieren Sie eine Java Laufzeitumgebung, die zum Java Standard kompatibel ist, z. B. das OpenJDK.

Wie kann ich Jacksum mit dem Finder unter Apple Mac OS X benutzen ?

Zuerst müssen Sie das Apple Skript-Menü aktivieren mithilfe des "AppleScript Dienstprogramms" im Ordner "AppleScript". Seit Mac OS 10.6 (Snow Leopard), sind die Script Menu Einstellungen im General-Reiter der AppleScript Editor Einstellungen zu finden.

Anschliessend laden Sie das Programmpaket für Mac OS X  herunter, extrahieren es und lassen das enthaltene Script laufen:

bunzip2 < jacksum-*.bz2 | tar xfv -
cd jacksum-macosx-finder-integration/
./install.command

Oder verwenden Sie einfach den Finder, um die Dateien zu extrahieren und das install.command Script zu starten.

Nachdem Sie das Integrationsscript laufen lassen haben, können Sie im Finder checksum/hash Algorithmen aus dem Apple script menu auswählen, wie auf dem unteren Bildschirmfoto zu sehen ist:

 
Für den Fall, dass Sie die Integration lieber manuell durchführen möchen, hier ist beispielhaft ein applescript, um den sha256 hash von den Dateien, die Sie zuvor im Finder ausgewählt haben, berechnen zu lassen:
 
tell application "Finder"
    set theseItems to the selection
end tell
set allFiles to ""
repeat with i from 1 to the count of theseItems
    set thisItem to(item i of theseItems) as alias
    set thisFile to POSIX path of thisItem
    set allFiles toallFiles & " " & thisFile
end repeat
set theCommand to "jacksum -a sha256 " & allFiles & " > /tmp/jacksum.txt"
do shell script theCommand
property targetURL : "file:///tmp/jacksum.txt"
open location targetURL

 

Beim Versuch mit einem normalen Benutzer auf jacksum-sendto.bat zuzugreifen, erhalte ich eine Fehlermeldung

C:\Programme\Jacksum Windows Explorer Integration\jacksum-sendto.bat
Auf das angegebene Gerät, bzw. den Pfad oder die Datei kann nicht zugegriffen werden. Sie verfügen eventuell nicht über ausreichende Berechtigungen, um auf das Element zugreifen zu können.

Das kann unter NTFS formatierten Systempartitionen passieren. Die Fehlermeldung sagt, daß der Benutzer nicht die nötigen Rechte besitzt, die Batch-Datei auszuführen. Als Administrator des Systems können Sie aber jacksum-sendto.bat die nötigen Lese- und Ausführungsrechte für normale Benutzer geben. Das geht i. d. R. am einfachsten, wenn man als Administrator die jacksum-sendto.bat Datei kopiert, die originale Datei löscht und die Kopie von jacksum-sendto.bat wieder nach jacksum-sendto.bat umbenennt. Falls das nicht klappt, müssen Sie als Administrator das NTFS-Rechtemanagement von Windows bemühen.
 

Warum sollte ich mindestens das JRE 1.4.2 benutzen?

Jacksum läuft mit JRE 1.3.1 und jeder neueren Version. Wenn Sie mindestens JRE 1.4.2 verwenden, werden Sie mit einem schnelleren Programmstart belohnt. Außerdem können auch die schnelleren Algorithmen SHA-256, SHA-384 und SHA-512 von der JRE verwendet werden. Es ist stets empfohlen, das neueste JRE zu benutzen. Laden Sie es sich herunter von  http://java.sun.com/javase. Wenn Sie das JRE 5.0 verwenden, werden Sie erneut mit einer besseren Performance für Jacksum belohnt.
 

Was bedeuten die Werte in der Ausgabe von Jacksum?
z. B.
599770357    23560    irgendein.txt

Die erste Zahl gibt die Prüfsumme an. Die Prüfsumme hängt ab vom verwendeten Algorithmus (-a) und vom hex-Schalter (-x, bzw. -X).
Die zweite Zahl gibt i. d. R. die Größe der Datei in bytes an. Ausnahmen sind bsd sum und UNIX system V sum. Sie geben die Größe der Datei in Blöcken an. Die Größe entfällt gänzlich bei den Hash-Algorithmen (SHA* oder MD*). Die dritte Spalte (zweite Spalte bei den Hash-Algorithmen) gibt den Dateinamen mit oder ohne Angabe des Pfades an. Der Dateiname entfällt, wenn die Standardeingabe gewählt wurde.

Seit Jacksum 1.3.0 gibt es die Möglichkeit, Zeitstempel von Dateien mit auszugeben. In diesem Fall erscheint eine zusätzliche Spalte in jeder Zeile (vor dem Dateinamen). Die Bedeutung des Zeitstempels ist abhängig vom Format, das mit der Option -t gesetzt werden kann.

599770357    23560    20031027140042     irgendein.txt
 

Welchen Algorithmen soll ich verwenden?

Mit der Option -a können Sie einen von mehreren Algorithmen wählen. Wenn Sie eine Datei von einer vertrauenswürdigen Seite heruntergeladen haben, und Sie wissen wollen, ob der Dateitransfer erfolgreich war, können viele Algorithmen gewählt werden. Um Ihre Daten jedoch auf Integrität zu überprüfen (Option -c) ist nicht jeder Algorithmus empfehlenswert, vor allem bei der Vielzahl von Dateien auf heutigen Festplatten.

Abzuraten:
Vom kryptographischen Standpunkt aus, ist die Verwendung der reinen Prüfsummenalgorithmen wie sum8, sum16, sum24, sum32 und xor8 abzuraten, da sie die Reihenfolge der Bytes unberücksichtigt lassen. Gebrochen wurden bereits auch MD2 und MD4. Auch sie sollten zur Überprüfung der Datenintegrität nicht mehr verwendet werden (u. a. werden sie auch von der RSA nicht mehr empfohlen). SHA-0 sollte ebenfalls nicht mehr verwendet werden, er wurde im Jahr 1995 durch SHA-1 ersetzt.

Bedingt einsetzbar:
Aufgrund ihrer kurzen Bitlänge und ihrer mangelnden mathematischen Stärke sind CRCs (Adler32, BSD sum, POSIX cksum, CRC-16, CRC-32 (FCS-32), FCS-16, MPEG-2's CRC-32, CRC-64 und die Unix System V sum) zur Integritätsprüfung heutiger Datenmengen nur bedingt einsetzbar - Ausnahmen bestätigen wie immer die Regel. Siehe auch den CRC-Faker und lesen Sie den Artikel "CRC and how to Reverse it" (der Link http://surf.to/anarchriz ist nicht mehr gültig, verwenden Sie eine Suchmaschine, um das Dokument zu finden). Ein Virus könnte Dateien geschickt manipulieren - mit einem CRC basierten Algorithmus könnten dann solche Anschläge nicht entdeckt werden. Obwohl Jacksum SFV bei Bedarf erzeugen kann, ist empfohlen, die Verwendung von SFV-Dateien zu vermeiden. Sie basieren auf CRC32 Werten und SFV ignoriert die Dateigröße komplett.

Bedingt zu empfehlen:
ELF-32 ist ein einfacher hash-basierter Algorithmus, der jedoch nicht die Bitstärke hat, um sehr sichere Datenintegrität zu garantieren. Der Algorithmus ed2k/eMule/eDonkey (basiert auf einem verbesserten MD4) ist ebenfalls hash-basiert und würde genug Bits haben, jedoch sind für MD5 und HAVAL_3_128 bereits im August 2004 reale Kollisionen bekannt worden (http://eprint.iacr.org/2004/199/) - mit Hilfe einer non-brute force Methode. Das Dokument erwähnt auch Kollisionen für RIPEMD-128, jedoch generiert das als Hexdump abgedruckte Beispiel keine Kollision (während alle anderen Beispiele im Dokument verifiziert werden konnten, scheint das RIPEMD Beispiel einen Tippfehler zu haben. Beachten Sie, daß RIPEMD-256 so sicher ist wie RIPEMD-128 und deswegen ebenfalls nicht mehr empfohlen werden kann. Tiger/128 und Tiger/160 sind tatsächlich abgeschnittene Hash-Funktionen von Tiger/192. Obwohl sie heute als sicher gelten, sind nicht-abgeschnittene Hashes zu bevorzugen.

SHA-1
Im Februar 2005 veröffentlichte der Sicherheitsspezialist Bruce Schneier eine von Xiaoyun Wang, Yiqun Lisa Yin, and Hongbo Yu umrissenen Attacke auf SHA-1. Die Autoren beschreiben, daß Ihre Attacke Kollisionen in der Vollimplementierung von SHA-1 finden könnte. Diese benötigte weniger als 269 Operationen (eine Brute-Force Suche würde 280 Operationen erfordern). In der akademischen Kryptographie wird jede Attacke, die weniger Berechnungsaufwand erfordert als der zu erwartende Zeitaufwand bei Brute-Force, als "Break" bezeichnet. Diese bedeutet aber jedoch nicht notwendigerweise, daß eine Attache auch praktisch durchgeführt werden kann. In der wirklichen Welt ist SHA-1 ist immer noch sicher, zumindest um Datenintegrität zu überprüfen. Für die neuesten Erkenntnisse der Kryptoanalyse von SHA-1 empfehle ich http://en.wikipedia.org/wiki/SHA1#Cryptanalysis_of_SHA-1.

Zu empfehlen:
Vom heutigen kryptographischen Standpunkt aus betrachtet (Oktober 2006), sind folgende Ein-Wege-Hash-Algorithmen zu empfehlen: HAVAL-{3/4/5}-{160/192/224/256}, RIPEMD-160, RIPEMD-320, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, Tiger, Tiger2 und Whirlpool.. Jacksum unterstützt alle hier angeführten Algorithmen. Seit Jacksum 1.5.0 ist SHA-1 der Default-Algorithmus.

Seit Jacksum 1.7.0 können mehrere Algorithmen kombiniert werden. Ich empfehle mindestens zwei unterschiedliche Techniken für die Dateiintegritätsprüfung zu verwenden, einen Hash-Algorithmus wie z. B. SHA-1 und einen CRC wie z. B. CRC32 bilden eine gute Kombination für diesen Zweck. Auch wenn eine Kollision in der Zukunft für den hash-basierten Algorithmus festgestellt werden sollte, ist es sehr unwahrscheinlich, daß auch ein CRC identische Werte zurückliefert.
 

Warum gibt es alternative Implementierungen für die Algorithmen ?

Einige Algorithmen (adler32, crc32, md5, sha-1) sind fester Bestandteil des Standard Java API. Andere wiederum (sha-256, sha-384, sha-512) sind Teil des Standard Java API neuerer Java Laufzeitumgebungen. Wenn ein Algorithmus von Ihrer Java Laufzeitumgebung unterstützt wird, ruft Jacksum dessen API auf und verwendet dieses Angebot. Einige Hersteller eines JRE rufen nativen Code auf, der üblicherweise eine gute Performance bietet. Beachten Sie jedoch, daß dies die Details der Implementierung der jeweiligen JRE-Hersteller sind, sie können von Hersteller zu Hersteller und sogar von Version zu Version unterschiedlich ausfallen. Wegen einer Vielzahl an Anfragen stelle ich für alle Algorithmen alternative, in purem Java implementierte Algorithmen zur Verfügung. Unter einigen Systemen kann eine alternative Implementierung besser performen als die des JRE-Herstellers (MD5 zum Beispiel), jedoch hängt diese Performance ab von Ihrem Computer und der Java Laufzeitumgebung, die sie einsetzen. Gewöhnlich ist es eine gute Idee, die neueste Java Laufzeitumgebung zu verwenden, und sich auf die Performance zu verlassen, die die JRE bietet. Tests haben gezeigt, daß je neuer Ihre JRE ist, desto besser die Performance. In Einzelfällen bringt der Schalter -A bessere Ergebnisse.
 

Sind CRCs heute nicht überflüssig?

Nein, CRCs werden immer noch in Hardware, Firmware, Protokollen, einfachen Software-Installern (NSIS zum Beispiel) und modernen Dateisystemen (zfs) verwendet. In der Regel sind sie sehr schnell (und nicht so komplex wie ein Einweg-Hash-Algorithmus), sie sind sinnvoll um kleine Dateneinheiten zu überprüfen. Des weiteren sind sie eine gute Ergänzug zu hash basierten Algorithmen. Jacksum unterstützt außerdem das Model "Rocksoft (tm) Model CRC Algorithm", welches es möglich macht, benutzerdefinierte CRCs zu berechnen.
 

Wie wird ein CRC berechnet?

Viele Leute haben mich diese Frage bereits gestellt. Es gibt ein paar gute Webseiten, die genau erklären wie CRC berechnet wird. Besuchen Sie http://surf.to/anarchriz oder ftp://ftp.rocksoft.com/papers/crc_v3.txt. Sie könnten auch einen Blick auf den Sourcecode von Jacksum werfen.
 

Unterstützt Jacksum den CCITT checksum Algorithmus ?

Viele Referenzen definieren den CRC-16/CCITT als

    crc:16,1021,FFFF,false,false,0

Die Notation "crc:width,poly,init,refIn,refOut,xorOut" wird seit Jacksum 1.7.0 verwendet, um einen CRC Algorithmus entprechend dem "Rocksoft(TM) Model CRC Algorithm" zu definieren. Verwendet man die Nachricht "123456789", liefert der CRC Algorithmus mit den obigen Parametern den Wert 0x29B1:

  jacksum -q txt:123456789 -X -a crc:16,1021,FFFF,false,false,0
  29B1

Andere Quellen behaupten jedoch, daß der entsprechend des CCITT Standards (siehe oben), einer Nachricht vor der Berechnung zuerst 16 Null-Bits vorgeschaltet werden müssten. Diese Interpretation des Standards kann wie folgt ausgedrückt werden:

    crc:16,1021,1D0F,false,false,0

Beachten Sie, daß in diesem Fall nur der Initialwert unterschiedlich ist, da eine 16 Null-Bit Nachricht durch einen CRC mit dem Initialwert 0xFFFF berechnet, die Prüfsumme 0x1D0F zurückliefert, die wiederum dem Initialwert für die alternative Interpretation des Algorithmus entspricht.

Verwendet man die Nachricht "123456789" , liefert der CRC Algorithmus mit den obigen Parametern den Wert 0xE5CC:

  jacksum -q txt:123456789 -X -a crc:16,1021,1D0F,false,false,0
  E5CC

Es ist nun vollkommen Ihnen überlassen, welchem CCITT Standard Sie glauben ;)
Jacksum kann beide Algorithmen berechnen (und auch jede andere Interpretation dieses "Standards").
 

Ich erhalte den Fehler "java.io.IOException: Datenfehler (CRC-Prüfung)". Was bedeutet das?

Das ist ein Fehler, den das deutsche Windows (NT basierend) meldet und er bedeutet, daß Windows nicht mehr in der Lage ist, von Ihrem CD-ROM oder DVD-Laufwerk eine Date zu lesen. Sie sollten Ihre Dateien auf einen neuen Datenträger sichern, um weitere Datenverluste zu vermeiden. Unter Linux heißt der Fehler entsprechend "java.io.IOException: Input/output error" (Beispiel Red Hat).
 

Welche Algorithmen werden von Jacksum nicht unterstützt?

Es gibt einige Algorithmen, die Jacksum (noch) nicht unterstützt. Dazu gehören Cellhash, Boognish, DHA-256 (relativ neu), FEAL (patentiert), FFT-hash, FORK-256 (ziemlich neu), Panama (broken), Snefru (broken), DSS1, MAA (Message Authenticator Algorithm, broken), MDC2 (Patent abgelaufen), Maelstrom-0, Maelstrom-1, Maelstrom, N-Hash (patentiert und unsicher), PMD-N, PMD-V, PMD-128, PMD-160, PMD-192, PMD-224, PMD-256 (koreanische Standards, keine komplette englische Dokumentation vorhanden), VEST-4, VEST-8, VEST-16, VEST-32 (Patent schwebend), VSH (relativ neu) und die VMS/VAX checksum (sehr wenig Information verfügbar). Wenn Sie Sourcecode zu diesen Algorithmen (vorzugsweise in Java) besitzen und mir senden, werde ich auch diese in Jacksum aufnehmen. Beachten Sie, daß die meisten dieser Algorithmen schon etwas älter und nicht wirklich kryptographisch stark sind, für die meisten von ihnen sind bereits Kollisionen bekannt worden (bzw. lassen sich zu leicht berechnen), jedoch sind die Algorithmen auf meiner Wunschliste für Lehrzwecke und der Vollständigkeit halber. Die Implementierung der Algorithmen aus der offiziellen SHA-3-Submission fehlen ebenfalls noch, da noch nicht klar ist, welche Algorithmen wirklich hart genug sind, um die SHA-2-Familie auf längere Sicht hin ablösen zu können.
 

Mein Freund hat einen PC von dem ich denke, dass er gehackt wurde, aber ich habe keine andere Maschine, um diese miteinander zu vergleichen ...

Die Prüfsummen der gängigsten UNIX/Linux-Derivate finden Sie hier: http://www.knowngoods.org
Für Solaris gibt es den Service von Sun auf http://sunsolve.sun.com/pub-cgi/fileFingerprints.pl
Für Windows habe ich keinen äquivalenten Service gefunden.
 

Wie kann ich Verzeichnisse synchronisieren?

Mit Hilfe von Jacksum kann eine unidirektionale Synchronisation durchgeführt werden, d. h. Jacksum kann Veränderungen auf einem Rechner erkennen und diese Veränderungen rückgängig machen, bzw. diese Veränderungen auf andere Rechner anwenden. Diese Synchronisation klappt sogar, wenn keine Verbindung zwischen den beiden Rechnern besteht. Gehen wir davon aus, Sie haben einen fehlerfreien und einen fehlerhaften Computer.

Beispiel für Windows:
1. Wechseln Sie in das fehlerfreie Verzeichnis auf Ihrem fehlerfreien Computer und führen Sie folgende Kommandos aus:
  cd good
  jacksum -a sha1 -m -r . > c:\temp\check.jacksum

2. Die Datei check.jacksum repräsentiert eine Momentaufnahme aller Dateien des fehlerfreien Computers im fehlerfreien Verzeichnis.
   Transferieren Sie die Datei check.jacksum anschliessend zum fehlerhaften Computer.

3. Wechseln Sie in das fehlerhafte Verzeichnis auf dem fehlerhaften Computer und führen Sie folgende Kommandos aus:
  cd faulty
  jacksum -c c:\temp\check.jacksum -l > c:\temp\files.list

4. Die Datei files.list enthält nun eine Liste der Unterschiede zwischen dem fehlerfreien und dem fehlerhaften Verzeichnis.
    Transferieren Sie die Datei files.list nun zum fehlerfreien Computer.

5. Wechseln Sie in das fehlerfreie Verzeichnis auf Ihrem fehlerfreien Computer und führen Sie folgende Kommandos aus:
  cd good
  type list.txt | zip -@ patch.zip

    Für den Fall, daß Sie .tar.bz2 anstelle von .zip bevorzugen:
  cd good
  tar cfv patch.tar -I files.list
  bzip2 -9 patch.tar

6. Die Datei patch.zip enthält nun alle Dateien des fehlerfreien Computers, die auf dem fehlerhaften Computer modifiziert oder gelöscht wurden. Transferieren Sie die Datei patch.zip zum fehlerhaften Computer und extrahieren Sie die im zip enthaltenen Dateien ins fehlerhaften Verzeichnis. Die Dateien im zip überschreiben die Dateien des fehlerhaften Verzeichnisses und aus dem fehlerhaften Computer wurde ein fehlerfreier Computer.
 

Wie erstelle ich einen Patch mit Jacksum?

Als Entwickler könnten Sie Ihren Treuekunden einen Patch für Ihre Version zur Verfügung zu stellen. Jacksum kann Ihnen hier behilflich sein.

Beispiel für Unix:
1. Wechseln Sie in das Verzeichnis der neuen Version und führen Sie folgende Kommandos aus:
  cd ~/newversion
  jacksum -a sha1 -m -r . > /tmp/check.jacksum

2. Wechseln Sie in das Verzeichnis der alten Version und führen Sie folgende Kommandos aus:
  cd ~/oldversion
  jacksum -c /tmp/check.jacksum -l > /tmp/files.list

3. Wechseln Sie erneut in das Verzeichnis der neuen Version und packen Sie die neuen und überarbeiteten Dateien in die Datei patch.zip
  cd ~/newversion
  tar cfv patch.tar -T /tmp/files.list   (GNU/Linux, Mac OS X, PC-BSD)
  tar cfv patch.tar -I /tmp/files.list   (PC-BSD, Solaris)
  bzip2 -9 patch.tar

    Für den Fall, daß Sie .zip anstelle von .tar.gz den Vorzug geben:
  cd ~/newversion
  cat /tmp/files.list | zip -@ patch.zip (GNU/Linux, Mac OS X, Solaris)

Vielen Dank an Girish Narang, mit dem ich eine "Patch-Erstell-Lösung" mit Hilfe von Ant entwickelt habe. Laden Sie das Ant script und das zugehörige property file herunter, um Patches mit Jacksum und Ant zu erzeugen.
 

Ist es möglich, zwei Verzeichnisse zu überprüfen?

Ja, seit Jacksum 1.3.0 können Sie die Option -c benutzen, um Dateien gegen eine gegebene Liste zu überprüfen. In diesem Fall werden Sie exakt wissen, welche Dateien modifiziert oder gelöscht wurden. Sie erzeugen eine solche Liste mit der Option -m. Siehe dazu die Beispiele in der Dokumentation.

Alternativ dazu, führen Sie die folgende Befehlssequenz bei beiden zu überprüfenden Verzeichnissen durch. Dabei ist es wichtig, dass Sie in das jeweilige Verzeichnis mit cd wechseln:

cd <zu überprüfender Verzeichnisbaum>
jacksum -r -f -a sha1 . | jacksum -a sha1 -

Wenn beide Prüfsummen übereinstimmen, wissen Sie, dass beide Verzeichnisse (einschließlich Unterverzeichnisse) identisch sind. Mit diesem Trick lässt sich z. B. auch überprüfen, ob eine gebrannte CD-[R/RW] oder DVD-[R/RW] auch wirklich das enthält, was man brennen wollte. Erinnern Sie sich, die Option -c gibt eine wesentlich genauere Auskunft über Veränderungen in einem Dateibaum.
 

Warum erhalte ich unterschiedliche Fingerprints mit -S, obwohl die Verzeichnisse wirklich gleich sind?

Es macht einen Unterschied, ob Sie eine Prüfsumme auf beispielsweise c:\daten oder d:\daten berechnen, weil Jacksum diesen Unterschied mit berücksichtigt. Wenn Sie nicht wollen, daß Jacksum diese (absolute) Pfadinformation berücksichtigt, die sie an der Kommandozeile angegeben haben, müssen Sie das aktuelle Arbeitsverzeichnis erst wechseln. Ich empfehle relative Pfade wie "daten" (wenn das aktuelle Verzeichnis c:\ ist) oder "." (wenn das aktuelle Verzeichnis c:\daten is), statt "c:\data" anzugeben. Wenn Sie auf d: die Berechnung durchführen, müssen Sie die gleichen Parameter verwenden, wie Sie sie bereits für c: verwendet haben. Siehe auch Feature Request #1028816.

Falsche Erwartung - alle Prüfsummen werden unterschiedlich sein:
jacksum -a sha1 -S c:\data
jacksum -a sha1 -S d:\data
jacksum -a sha1 -S d:\backup\data

Richtige Verwendung - die Parameter sind bei allen Berechnungen identisch, alle Prüfsummen werden gleich sein (vorausgesetzt, daß die Verzeichnisse wirklich gleich sind):

jacksum -a sha1 -S -w c:\data
jacksum -a sha1 -S -w d:\data
jacksum -a sha1 -S -w d:\backup\data

ODER

c:
cd \data
jacksum -a sha1 -S .

d:
cd \data
jacksum -a sha1 -S .

cd \backup\data
jacksum -a sha1 -S .
 

Warum erhalte ich unterschiedliche Fingerprints mit -S unter Windows und Linux?

Ich habe eine Share-Partition. Sie ist als FAT32 formatiert, damit ich auf meine Dateien sowohl von Linux als auch von Windows aus zugreifen kann. Wenn ich die Option -S benutze, bekomme ich unterschiedliche Prüfsummen unter Linux und Windows. Was ist da falsch?

Gewöhnlich passiert das, wenn Sie suboptimale Mountoptionen verwenden. Wenn Ihre Share-Partition als "vfat" unter Linux gemountet ist, sollten Sie auch die Mountoption namens "shortname" spezifizieren. Sie definiert das Verhalten für das Erzeugen und die Anzeige von Dateienamen, die in das 8+3 Zeichenschema passen. Diese Mountoption ist nötig, da Jacksum bei der Verwendung der Option -S auch die Dateinamen und Verzeichnisse in die Prüfsequenz mit einrechnet. Für mehr Informationen lesen Sie "man mount". Alternativ zu -S können Sie auch die Optionen -m und -c benutzen, um Dateien plattform- und mountoptionunabhängig zu verifizieren.
 

Ich erhalte bash: !": event not found

jacksum -a crc32 -q "txt:Hello World!" gibt mir:
bash: !": event not found

Dies ist ein Problem der Bash shell. Das Ausrufezeichen ! in der Bash hat eine spezielle Bedeutung (die auch geändert werden kann), es symbolisiert den "history expansion character". Die Störung ist auch mit echo reproduzierbar.

$ echo "!"
bash: !: event not found

$ echo "\!"
\!

$ echo \!
!

Die korrekte Verwendung ist daher

jacksum -a crc32 -q "txt:Hello World"\!
472456355    12

jedoch ist diese Syntax nicht sehr komfortabel. Zum Glück können einfache Hochkomma verwendet werden, um das Problem elegant zu lösen::

$ echo '!'
!

jacksum -a crc32 -q 'txt:Hello World!'
472456355    12

Siehe auch die Manpage der Bash "Enclosing characters in single quotes preserves the literal value of each character whithin the quotes".
 

Kann ich Jacksum in meinem Projekt verwenden?

Ja, vorausgesetzt Sie respektieren die Freiheit von Feier Open Source und akzeptieren die Bedingungen der GNU GPL. Es ist untersagt, Jacksum in properitärer Software zu verwenden ("kommerziell" und "proprietär" ist nicht das selbe!), die Arbeit als die Ihre auszugeben ist ebenfalls untersagt. Machen Sie doch selbst mit bei Freier Open Source, dann sind sich auch herzlich eingeladen, am Erfolg von Open Source Software teilzunehmen.

Darf ich den Namen Jacksum für mein eigenes Projekt verwenden?

Der Name Jacksum ist meine persönliche Wortneuschöpfung und er existiert seit 2002. Der Name Jacksum ist urheberrechtlich geschützt und ich bitte das zu respektieren. Jacksum's source code steht hingegen unter den Bedingungen der freien Open Source Lizenz GPL jedermann zur Verfügung.

Gibt es akademische Puplikationen, die Jacksum erwähnen?
Ja, vielen Dank dafür!


Software, die die neueste Jacksum Version verwendet

Diese Sektion enthält Links zu Software, die Jacksum verwendet oder mit .jacksum files umgehen kann:
Beachten Sie, daß keine der folgenden Anwendungen ALLE Merkmale unterstützt, die Jacksum auf der Kommandozeile bietet. Sie sind jedoch extrem hilfreich, wenn Sie ein Freund von graphischen Oberflächen sind und die Kommandozeile Ihre zweite Wahl ist :)
(Die Liste wurde am 25. Februar 2008 aktualisiert)

  • NumericalChameleon 2.0.0 -  (noch nicht veröffentlicht) - GNU GPL, ein plattformunabhängiger Einheitunumrechner für den Desktop, wird Jacksum 1.7.0 verwenden
  • Jacksum File Browser Integration - http://sourceforge.net/projects/jacksum - GNU GPL, die Installer vom 8. Oktober 2006 fügen Jacksum's primäres Feature den Standarddateibrowsern hinzu, sie sind powered by Jacksum 1.7.0.
  • http://publictimestamp.org - http://publictimestamp.org - GNU GPL, PublicTimestamp.org offers the free service to timestamp any publicly available digital document, latest client version is from April 25, 2007 and it is powered by Jacksum 1.7.0.
  • Hasher GUI - http://sourceforge.net/projects/hashergui - GNU GPL, a Swing GUI for Jacksum, the latest version is 0.3 from Jan 30, 2007 and it is powered by Jacksum 1.7.0
  • TWCheckSum - http://www.wenzlaff.de/twchecksum.html - GNU GPL, a Swing GUI powered by Jacksum 1.7.0, the latest version is 0.9 from Feb 25, 2008
Software, die Jacksum in älteren Versionen verwendet
  • DuMP3 - http://dump3.sourceforge.net - GNU GPL, die Software findet Dublikate und ähnliche Dateien, die neueste Version 0.2.5 alpha ist vom 14. Juli, 2006 und ist powered by Jacksum 1.6.1.
  • Prevalent Digest Creator - http://www.prevalent.de -  die Software von Jan Kechel erstellt u. a. mehrere kryptographische Hash-Werte von Dateien und kann an den Prevalent-Server kostenfrei gesendet werden - GNU GPL, die Version 1.1.0 ist vom 11. Januar 2005 und ist powered by Jacksum 1.6.1.
  • Serversniff Hash Calculation - http://serversniff.de - Online-Tool powered by Jacksum 1.6.1 berechnet Hashes zu eingegebenen Zeichenketten
  • Real Public Radio Network - www.rprn.org - die Software ist powered by Jacksum 1.5.1. RPRN ist eine non-profit Organisation, die eine  Internetgemeinschaft ins Leben rufen will, um den Austausch von digitalen Audio-Inhalten zu unterstützen - die neueste Entwicklerversion ist from 3. Mai 2005.
  • OntoMedia - http://www.ontomedia.de - ist ein Multimedia Management System von Bodo Hüsemann der Universität Münster. Es verwended Jacksum 1.5.0, siehe auch credits
  • MD5 GUI - http://sourceforge.net/projects/md5gui - die Software von John Brown bringt ein nettes GUI mit (nur der MD5 Algorithmus ist aus historischen, nicht aus performanctechnischen Gründen von einem anderen Entwickler) - GNU GPL, die Version 0.97 ist vom 29. Januar 2005 und ist powered by Jacksum 1.5.1
  • xfdu - http://sindbad.gsfc.nasa.gov/xfdu/ - xfdu stands for extensible data packaging format, and it is an implementation of the Recommendation for Space Data System Standard by the Management Council of the Consultative Committee for Space Data Systems (CCSDS) which is a departement of the National Aeronautics and Space Administration (NASA), and it uses Jacksum 1.4.0 (see also dependencies)
  • Java Mechanic - http://sourceforge.net/projects/javamechanic - das Projekt kann für Entwickler nütztlich sein -  GNU GPL, die Version 3.0 ist vom 04. April 2004 und ist powered by Jacksum 1.2.0
  • JavaIntegrity - http://sourceforge.net/projects/javaintegrity/ -  es ist ein Kommandozeilentool und ist powered by Jacksum 1.1.0. Features von JavaIntegrity 1.1 sind bereits in neueren Jacksum Versionen enthalten - GNU GPL, die Version 1.1 ist vom 27. October 2002.
  • TrID - http://mark0.net/soft-trid-e.html - Marco Pontello's Datei Identifizierer für Windows kennt .jacksum Dateien
  • file - das file Kommando unter Unix/Linux kann mit .jacksum Dateien umgehen, wenn Sie das "jacksum.magic" zu Ihrer /etc/magic anhängen.
Wenn Sie Software entwickelt haben, die auf Jacksum basiert oder verwendet und einen Link oder eine Beschreibung hier stehen haben möchten, schreiben Sie eine eMail an jonelo@jonelo.de
 

Gibt es irgendwelche Codebeispiele wie man Jacksum in einem anderen Projekt verwenden kann?

Ja, einer der grundlegenden Codeschnipsel ist hier:
 

   import java.io.*;
   import java.security.*;
   import jonelo.jacksum.*;
   import jonelo.jacksum.algorithm.*;
   // ...

   AbstractChecksum checksum = null;
   try {
     // select an algorithm (md5 in this case)
     checksum = JacksumAPI.getChecksumInstance("md5");
     // On some systems you get a better performance for particular
     // algorithms if you select an alternate algorithm (see also option -A)
     // checksum = JacksumAPI.getChecksumInstance("md5", true);
   } catch (NoSuchAlgorithmException nsae) {
     // algorithm doesn't exist
   }

   // updates the checksum with the content of a file
   try {
     checksum.readFile(filename);
   } catch (IOException ioe) {
     // ...
   }
   System.out.println(checksum);
 

Die update-Methoden können verwendet werden, um das Checksum-Objekt mit bytes oder bytearrays zu aktualisieren:
 

   // reset the object for reuse (any formatting rules remain)
   checksum.reset();
   // update the checksum with a single byte
   checksum.update(abyte);
   // update the checksum with a bytearray
   checksum.update(bytearray);
   // update the checksum with the first 10 bytes in the bytearray
   checksum.update(bytearray, 0, 10);

   System.out.println(checksum);

Um zu erfahren, welche Algorithmen unterstützt werden, verwenden Sie das folgende Snippet. Wenn Sie JSE 5.0 oder neuer verwendet, können Sie Generics einsetzten, um Castings zu vermeiden.
 

   Map map = JacksumAPI.getAvailableAlgorithms();
   Iterator iterator = map.entrySet().iterator();
   while (iterator.hasNext()) {
       Map.Entry entry = (Map.Entry)iterator.next();

       String description = (String)entry.getValue();
       // do something with the description
       // ...

       AbstractChecksum checksum = JacksumAPI.getChecksumInstance((String)entry.getKey());
       // do something with the checksum object
       // ...
   }
 

Um das Ausgabeformat zu bestimmen, können Methoden auf dem checksum Objekt angewendet werden:
 

   // checksum is printed in hex form (see also option -x)
   // example: 7d93370d5ef94450151826ca20c6e512
   checksum.setEncoding(HEX);

   // checksum is printed in uppercase hex form (see also option -X)
   // example: 7D93370D5EF94450151826CA20C6E512
   checksum.setEncoding(HEX_UPPERCASE);

   // checksum is printed in uppercase hex and grouped form (see also options -g, -G)
   // example: 7D93-370D-5EF9-4450-1518-26CA-20C6-E512
   checksum.setEncoding(HEX_UPPERCASE);
   checksum.setGrouping(2, '-');

   // checksum is printed in Base 64 form (see also option -E)
   // There is also BASE16 and BASE32
   // example: fZM3DV75RFAVGCbKIMblEg==
   checksum.setEncoding(BASE64);

   // checksum is printed in BubbleBabble form (see also option -E)
   // example: xizen-fetab-tilaz-necuh-buhyc-mynys-pemes-kunyc-daxox
   checksum.setEncoding(BUBBLEBABBLE);
 

Das Ausgabeformat einer kompletten Zeile kann z. B. mit der format Methode beeinflußt werden:
 

   // print the checksum, the default output format depends on the algorithm
   System.out.println(checksum);

   // print the checksum, the default output format depends on the algorithm
   checksum.setSeparator(";");
   System.out.println(checksum);

   // print the checksum value only (see also option -F)
   System.out.println(checksum.format("#CHECKSUM"));

   // print the checksum value with a customized format (see also option -F)
   System.out.println(checksum.format("<a href=\"ed2k://|file|#FILENAME|#FILESIZE|#FINGERPRINT|\">#FILENAME</a>"));
 

Obiges Beispiele sollen lediglich als kleine Hilfe dienen, die ersten Hürden zu nehmen. Für detaillierte Informationen über alle Möglichkeiten mit Jacksum, schauen Sie bitte in den Open Source Code oder erzeugen Sie sich javadoc mit Hilfe des Ant-Scripts.
 

Was ist für die nächsten Versionen geplant?

Ich habe immer noch eine Menge an neuen Ideen für Jacksum und einige brilliante Verbesserungsvorschläge von anderen Leuten rund um den Globus für das Jacksum Projekt. Keine dieser Ideen wird vergessen werden, aber es dauert seine Zeit, sie zu implementieren, zu testen, zu optimieren und sie zu dokumentieren. Die folgende Liste behandelt die Top-Ten Anfragen, die für die nächsten Versionen geplant sind (unsortiert, nur englisch):

- Identify extra data (files and/or directories) that have been added to the target location during a comparison operation,
  thanks to John D. for the feature request and thanks to Dipl.-Inf. (FH) Ralf Kahrl for the reference implementation!
- a new API suggestion which could be used by both the CLI and a GUI.
  Thanks to Stephan Classen, Sibylle Dürr, Barbara Keller, Audrey Lim and Judith Rüesch
  for working on it as part of their IT-project at the ETH Zürich, Switzerland
- A Swing GUI for Jacksum (maybe a separate project)
- HMAC support for the algorithms
- Read files from a list
- Distinguish between missing files versus files that are different also if option -l is used
- CRCs with 1-7 bit length
- Tree Hash for more algorithms
- Filter for processing particular files only
- Performance support for boxes having multiple CPUs and/or cores
- Filesystem specific file attributes (see also JSR 203)
- New algorithms
 

Handbuch:

Wenn Sie Informationen von dieser Webseite nach Wikipedia oder einen anderen öffentlichen Platz im Web stellen, seien Sie fair und setzen wenigstens einen Referezlink, der zu dieser Seite zurücklinkt.
 
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
 

Historie:
Jacksum 1.7.0, July 30, 2006
- added a customizable CRC algorithm, now you can calculate any CRC which
  can be described by the Rocksoft Model CRC Algorithm (8 to 64 bit width),
  see also sf# 1518023 Setting of an initial value for a CRC
- support for combinable checksums, see also sf# 1210489
  (multiple hashes at the same time), thanks to synonymous2 for this feature request
- support for using all algorithms at once (-a all)
- two new algorithms are supported: crc32_bzip2, HAS-160
- support for Tiger Tree hashes (aka Merkle Hashes). Thanks to Carsten Krüger,
  Germany for the feature request and pointers to some resources
- support for new encodings (bin, dec, oct)
- support for the combination of both options -c and -w,
  Thanks to Dipl.-Inf. (FH) Ralf Kahrl, Germany for the implementation of this feature
- a small performance improvement for the whirlpool algorithms
- replaced the crc24 with a faster one by using the customizable CRC algorithm
  (the old one had also a minor bug in the parameterless constructor)
- bug fixed: -V summary does not always return reasonable values
- bug fixed: update(byte[], int, int) fails if offset is > 0 (sf # 1525183)
  This can cause problems if Jacksum is incorporated in different projects
- The bouncycastle and gnu classes have been moved to jonelo.jacksum.adapt so that
  they won't clash with different downloaded versions of the classes. Actually this
  is to avoid potential problems if a project uses both bouncycastle and Jacksum for example.
  Thanks to Alberto Rodriguez, Spain for the feature request
- documentation updated (BeOS' data integrity programs, Tru64 and year of the invention for
  many algorithms)
- tested with gij 4.0.2, JRE 1.3.1_18, 1.4.2_12, 5.0_07, 6.0-rc-b93

Jacksum 1.6.1, Nov 13, 2005
- regression bug fixed: -r does not work anymore on Linux/Unix
  Thanks to Christoph R., Germany and niku.u for the bug reports (sf# 1354426)
- bug fixed: stdout and stderr overwrite each other when stdout and stderr are equal
- bug fixed: -c and -V summary give meaningless summary
- exit status depends on the result of -c now
  Thanks to Martin Z., Germany for the feature request
- improved documentation ("exit status" and "see also" have been added)

Jacksum 1.6.0, Sep 3, 2005
- twelve new algorithms are supported: CRC-8, CRC-24, GOST R 34.11-94, SHA-0, SHA-224,
  Tiger-128, Tiger-160, Tiger2, Whirlpool-0, Whirlpool-2, RIPEMD-256, RIPEMD-320
- change: "whirlpool" refers to Whirlpool-2 now, rather than to Whirlpool-1
- support for an alternate Adler 32 implementation
- improved option -c: Jacksum can check the integrity even if a file list has
  not been created by Jacksum (or a file list without meta information)
  Thanks to Sebastian J., Germany for this feature request
- new option -w for setting the working directory
- new algorithm-code called "none" for ignoring the real content of
  the files for being able to check just against the filesize
- new algorithm-code called "read" for being able to read the file's content,
  but without doing any calculation
- new option -E for an encoding of the checksum (hex, hexup, Base 16, Base 32,
  Base 64 and BubbleBabble are supported)
- new option -g (group some bytes) for better readability of a hex checksum
- new option -G (group separator) for better readability of a hex checksum
- new option -o for redirecting the output to a file rather than the standard output,
  in this case the file is also excluded from the calculation process
- new option -O for overwriting an existing file
- new option -I for ignoring lines when checking the integrity by -c
- new option -V for a verbose output (number of processed files and dirs, processed bytes,
  number of read errors and elapsed time)
- improved option -e: works also for multiple files and directories
  for being able to find duplicates
- improved option -e: when using -e, the option -x is not necessary anymore,
  if the return value by default is hex anyway
- improved option -m: unnecessary defaults are not be written to the header anymore
- improved option -h: can show only fractions of the help file rather than
  the complete help file
- improved option -t: #SEPARATOR and #QUOTE are also replaced
  Thanks to Claudio C., Italy for the feature request
- improved option -F: #FILENAME{NAME} and #FILENAME{PATH} can be used
  Thanks to Claudio C., Italy for the feature request
- bug fixed: if calling the getHexValue() method more than once, the hash based
  algorithms return a different value; this can cause problems if Jacksum
  is used in other projects, Thanks to Bob C. for the bug report
- bug fixed: problem on Unix/Linux while checking a file list if the filename's
  last character is a colon (e. g. "Terminal 1:")
- improved documentation, added also collision files
- improved the public API (support a method to return byte[])
  Thanks to Alex G., Germany for this feature request
- improved the public API for other projects (methods getAvailableAlgorithms(),
  and equals() have been added)
- Added javadoc, Thanks to Corey Osman for this feature request
- refactored and code improvements
- tested with gij 3.2.2, Kaffe 1.1.4, JRE 1.3.1_16, 1.4.2_09, 5.0_04, 6.0-ea-b48

Jacksum 1.5.1, 2004-10-31
- Regression beseitigt: Wenn Option -l verwendet wird, werden gelöschte Dateien nicht mehr ausgegeben
  Dank an Sabrina Rolleman, Kanada für den Bugreport
- Sourceforge feature request #1028824 wurde implementiert (add homepage URI with -m)
  Dank an Lee A. Davis for the feature request
- Verbesserte Dokumentation
- Erfolgreich getestet mit JRE 5.0

Jacksum 1.5.0, 22.08.2004
- Vier neue Algorithmen werden unterstützt: ed2k/eDonkey/eMule, CRC-64, ELF-32, FCS-16
  Dank an Henrique Malheiro, Portugal für die Referenzimplementierung des eDonkey-Algorithmus
- Sourceforge bug #948070 wurde beseitigt (-c won't work if -t has been set)
  Dank an Lee A. Davis für den Bugreport
- Bug beseitigt: Jacksum hangs if it reaches a fifo under Unix/Linux
- Bug beseitigt: files which are used by another process can't be processed properly
- Neue Option -d zum Ignorieren symbolischer Links auf Verzeichnisse unter Unix/Linux, um
  Endlosschleifen in bestimmten Fällen zu vermeiden
- Verbesserte Option -q, um nicht nur Hex-, sondern auch Text- und Dezimalformate entgegennehmen zu können
- Neue Option -F, um das Ausgabeformat frei definieren zu können
  Siehe auch den Sourceforge Feature Request #968469 (show file length on MD5)
- Neue Option -P, um Dateinamen mit einem benutzerdefinierten Separator ausgeben zu können
- Listen, die mit -m erzeugt werden, sind nun plattformunabhängig, erzeugen Sie z. B. eine Liste unter Windows
   und verifizieren Sie diese unter Linux
- Neue Option -S, um nur einen einzigen Fingerprint zu berechnen (summary)
  Dank an Berthold Kohlmann, Germany für diesen Featurerequest
- Sourceforege feature request #968491 wurde implementiert
  (Handle pre 1.5 time formats with -c), ank an Lee A. Davis für diese Anfrage
- Sourceforge feature request #968487 wurde implementiert (list dir argument as comment)
  Dank an Lee A. Davis für diese Anfrage
- Neue Option -A, um eine alternative Implementierung eines der folgenden Algorithmen zu wählen:
  crc32, md5, sha-1, sha-256, sha-384, sha-512
- Alias FCS-32 für CRC-32 hinzugefügt
- Alias SHA-160 für SHA-1 hinzugefügt
- Überprüfung der Java version nun auch für IBM's Java VM
- Erfolgreich getestet mit JRE 1.5 beta3

Jacksum 1.4.0, 01.02.2004
- Drei neue Algorithmen werden unterstützt: Tiger, Haval und die MPEG spec von CRC-32
  Dank an to Chris Ash, Southampton, UK für den Featurerequest basierend auf existierendem
  GPL code (VideoLan project)
- Haval unterstützt sowohl Längenparameter (128, 160, 192, 224 oder 256 Bits) als auch
  Parameter für die Anzahl der zu durchlaufenden Runden (3 bis 5)
- Algorithmen SHA-256, SHA-384 und SHA-512 werden nun auch mit JRE 1.3.1 unterstützt
- Neue Option -p, um Pfadinformationen jeder Zeile hinzuzufügen, wenn rekursive Dateiverarbeitung
  gewünscht wird. Das macht es einfacher, die Ausgabe mit sort oder grep weiter zu verarbeiten.
  Dank an Douglas E. W. für den Featurerequest und die Referenzimplementierung
- Neue Option -e, um einen Vergleich basierend auf einer erwarteten Checksum durchzuführen
  Dank an Daniel Ellermann, Germany für den Featurerequest und die Referenzimplementierung
- Neue Option -l, um eine Liste von modifizierten und gelöschten Dateien auszugeben. Sie kann
  als Eingabe für das zip-Kommando verwendet werden
- Programm versucht nicht mehr weiterzumachen, wenn Parameter -t nicht unterstützte Zeichen enthält
- Versionsüberprüfung für Checkfiles für bessere Kompatibilität eingeführt
- Erweiterter Kommentar im Sourcecode Crc16.java
- Dokumentation upgedated mit Mac OS X Information
- Erfordert mindestens JRE 1.3.1, 1.4.2 wird empfohlen

Jacksum 1.3.0, 02.11.2003
- Acht neue Algorithmen werden unterstützt: sha-256, sha-384 und sha-512
  (erfordert Java 1.4.2 oder höher), xor8, sum8, sum16, sum24, sum32
- Option, um Dateien gegen eine gegebene Liste zu überprüfen (Option -c)
  Dank an Leonardo A. Pires, Brasilien für diesen Feature-Request
  Dank an Christian F., London, UK für seine Referenzimplementierung
- Option, um Meta-information (Option -m) zu generieren. Wenn gegen eine
  Liste überprüft wird, müssen die originalen Kommandozeilenoptionen nicht nocheinmal angegeben werden
- Der Zeitstempel von Dateien kann nun Teil der Ausgabe sein (Option -t)
  Dank an Vishwanathan Narayanan, Florida, USA für diesen Feature-Request
  Mit der Option -c können damit gleichzeitig Inhalt und Zeitstempel von Dateien überprüft werden
- Das Ausgabeformat für Zeitstempel von Dateien ist konfigurierbar
- Schnelle Verarbeitung einer Hex-Sequenz direkt an der Kommandozeile (Option -q)
  Dank an Jack Memishian, USA für diesen Feature-Request
- Fehler beseitigt: Algorithmus cksum hängt, wenn die Datei größer als 2 GB ist
- Fehler beseitigt: Verarbeitung eines Spezialordners wie Windows'
  "System Volume Information" wirft eine NullPointerException
- Die Ausgabe erfolgt nun getrennt auf den Streams stdout und stderr
- Jacksum verwendet das GNU crypto package 1.1
  (http://www.gnu.org/software/gnu-crypto/)
- Dokumentation aktualisiert

Jacksum 1.2.0, 16.02.2003
- vier neue Algorithmen aus dem GNU crypto Projekt werden unterstützt:
  MD4, RIPEMD-128, RIPEMD-160 and Whirlpool
  (http://www.gnu.org/software/classpathx/crypto)
- Fehler beseitigt: calling the getValue() method more than once for the Cksum class returns a
  different value; this can cause problems if Jacksum will be used in other projects.
  Dank gilt Cary Coulter für den Fehler-Report und Fix.
- Fehler beseitigt: CRC16 arbeitet nicht wie das Standard CRC16 Generator-Polynom X^16 + X^15 + X^2 + 1.
  Dank gilt David Elfi, Argentinien für den Fehler-Report und Fix.
- Kompatibilität mit der freien Kaffe Java VM
  (Java-Versionsüberprüfung nun nur für Sun's Java VM)
- Parameter -v zum Bestimmen der Version von Jacksum

Jacksum 1.1.2, 18.01.2002
- Fehler beseitigt: Eingabedatei wird nicht geschlossen. Vielen Dank an Bill Kelemen für den Fehler-Report und den Fix.
- Schnellerer Algorithmus zum Ausgeben von Prüfsummen im Hex-Format
- Dokumentation aktualisiert (Solaris 9+ hat md5)

Jacksum 1.1.1, 07.11.2002
- Fehler beseitigt: Algorithmus sysv gibt fehlerhafte Prüfsumme zurück, wenn Dateien größer als
 ~9 MB werden. Dank gilt Sunny Liu, NYC für den Fehler-Report und Fix.

Jacksum 1.1.0, 08.09.2002
- Optionen für die Ausgabe der Prüfsumme im hexadezimalen Format (klein- und Grossbuchstaben)
  Dank gilt Peter Frey für diesen Feature request
- Dateinamen/Verzeichnisse werden alphabetisch sortiert

Jacksum 1.0.0, 07.07.2002
- erste veröffentlichte Version
- Algorithmen Adler32, BSD sum, POSIX cksum, CRC-16, CRC-32, MD2, MD5,
  SHA1 und Unix System V sum werden unterstützt
- Rekursive Verarbeitung von Verzeichnissen wird unterstützt
- Trennzeichen in der Ausgabe sind wählbar
 

Kontakt:


Bleiben Sie auf dem Laufenden - der Newsletter:
Wenn Sie informiert werden wollen, wenn eine neue Version von Jacksum verfügbar ist, können Sie sich jederzeit auf den Mail-Alias setzen oder entfernen lassen. Von diesem eMail-Alias werden Sie ausschlißlich von mir eMails erhalten. Erwarten Sie maximal ca. 12 eMails pro Jahr.

   Newsletter abonnieren, leere eMail an:  announce-subscribe@jacksum.dev.java.net
   Newsletter abmelden, leere eMail an: announce-unsubscribe@jacksum.dev.java.net
   View the announcements list archive: https://jacksum.dev.java.net/servlets/SummarizeList?listName=announce
 

Diskutieren Sie mit anderen Anwenderen - der User-Mail-Alias:
Wenn Sie etwas für die "Wunschliste" haben oder bei Ihnen Probleme mit Jacksum auftreten, schreiben Sie auf diesen Mail-Alias. Um Rücksicht auf die nicht-deutschsprachigen Mitglieder auf diesem Alias, bitte ich darum, auf diesem Alias ausschließlich in Englisch zu schrebein. Die Mailing-Liste ist ein guter Platz, um neue Ideen, Features und Fehler zu diskutieren.

   Dem User-Mail-Alias beitreten:  users-subscribe@jacksum.dev.java.net
   Vom User-Mail-Alias austreten: users-unsubscribe@jacksum.dev.java.net
   To write to the list, send a message to:  users@jacksum.dev.java.net
 

Trackers (Bug database, Support and Feature requests):
http://sourceforge.net/projects/jacksum
 

Persönliche eMail:
Schreiben Sie mir einfach eine email. Haben Sie ein wenig Geduld, wenn Sie nicht in der gleichen Woche eine Antwort von mir erhalten, da ich mir i. d. R. für jede Anfrage etwas Zeit nehme.
 
 

Links, wo Jacksum gelistet ist:


separator
Copyright © 2000-2010 Dipl.-Inf. (FH) Johann N. Löfflmann mail icon jonelo@jonelo.de,
last update of this page: 18-Jul-2010
statcounter  hits at this page since 07-Jul-2002