Thursday, 26 January 2017

Checksum Binary Optionen

6,5 md5sum. Drucken oder Überprüfen von MD5-Aufzeichnungen md5sum berechnet für jede angegebene Datei eine 128-Bit-Prüfsumme (oder Fingerabdruck oder Message-Digest). Hinweis: Der MD5-Digest ist zuverlässiger als ein einfacher CRC (zur Verfügung gestellt durch den Befehl cksum) zur Erkennung versehentlicher Dateibeschädigung, da die Chance, versehentlich zwei Dateien mit identischem MD5 zu haben, verschwindend klein ist. Allerdings sollte es nicht als sicher gegen böswillige Manipulationen betrachtet werden: Obwohl das Finden einer Datei mit einem bestimmten MD5-Fingerabdruck im Moment als nicht möglich angesehen wird, ist es bekannt, bestimmte Dateien, einschließlich digitaler Zertifikate, so zu ändern, dass sie gültig erscheinen, wenn sie mit einem signiert werden MD5 verdauen. Für sicherere Hashes sollten Sie SHA-2 verwenden. Siehe sha2 utilities. Wenn eine Datei als lsquo-rsquo angegeben wird oder wenn keine Dateien angegeben werden, berechnet md5sum die Prüfsumme für die Standardeingabe. Md5sum kann auch bestimmen, ob eine Datei und Prüfsumme konsistent sind. Synopsis: Für jede Datei. Lsquo md5sum rsquo gibt standardmäßig die MD5-Prüfsumme, ein Leerzeichen, ein Flag für den Binär - oder Texteingabemodus und den Dateinamen aus. Binärer Modus wird mit lsquo rsquo, Textmodus mit lsquo rsquo (Raum) angezeigt. Der Binärmodus ist die Voreinstellung auf Systemen, in denen itrsquos signifikant ist, andernfalls ist Textmodus die Voreinstellung. Wenn die Datei einen Backslash oder eine Neuzeile enthält, wird die Zeile mit einem Backslash gestartet, und jedes problematische Zeichen im Dateinamen wird mit einem Backslash entschlüsselt, was die Ausgabe auch bei Vorhandensein beliebiger Dateinamen unmissverständlich macht. Wird die Datei ausgelassen oder als lsquo - rsquo angegeben, wird die Standard - Eingabe gelesen. Das Programm akzeptiert die folgenden Optionen. Siehe auch Allgemeine Optionen. Behandeln Sie jede Eingabedatei als Binärdatei, indem Sie sie im Binärmodus lesen und ein lsquo-rsquo-Flag ausgeben. Dies ist die Umkehrung von --text. Bei Systemen wie GNU, die nicht zwischen Binär - und Textdateien unterscheiden, kennzeichnet diese Option lediglich jeden Eingangsmodus als binär: die MD5-Prüfsumme ist nicht betroffen. Diese Option ist die Voreinstellung auf Systemen wie MS-DOS, die zwischen Binär - und Textdateien unterscheiden, mit Ausnahme des Lesens der Standard-Eingabe, wenn die Standardeingabe ein Terminal ist. Lsquo - c rsquo lsquo --check rsquo Lesen Sie Dateinamen und Prüfsummeninformationen (nicht Daten) aus jeder Datei (oder von stdin, wenn keine Datei angegeben wurde) und melden Sie, ob die Prüfsummen mit den Inhalten der genannten Dateien übereinstimmen. Der Eingang zu diesem Modus von md5sum ist normalerweise die Ausgabe eines vorherigen, Prüfsummen-erzeugenden Durchlaufs von lsquo md5sum rsquo. Es werden drei Eingabeformate unterstützt. Entweder das oben beschriebene Standard-Ausgabeformat, das --tag-Ausgabeformat oder das BSD-umgekehrte Modusformat, das dem Standardmodus ähnelt, aber doesnrsquot verwendet ein Zeichen, um Binär - und Textmodi zu unterscheiden. Für jede solche Zeile liest md5sum die benannte Datei und berechnet ihre MD5-Prüfsumme. Wenn die berechnete Nachrichtenauswahl nicht mit der auf der Zeile mit dem Dateinamen übereinstimmt, wird die Datei als fehlgeschlagen festgestellt. Ansonsten übergibt die Datei den Test. Standardmäßig wird für jede gültige Zeile eine Zeile auf die Standardausgabe geschrieben, die angibt, ob die benannte Datei den Test bestanden hat. Nachdem alle Prüfungen durchgeführt wurden, falls Fehler auftreten, wird eine Warnung für den Standardfehler ausgegeben. Verwenden Sie die Option --status, um diese Ausgabe zu sperren. Wenn eine aufgeführte Datei nicht geöffnet oder gelesen werden kann, wenn eine gültige Zeile eine MD5-Prüfsumme enthält, die mit der zugehörigen Datei nicht übereinstimmt, oder wenn keine gültige Zeile gefunden wird, wird md5sum mit einem Nicht-Null-Status beendet. Andernfalls wird es erfolgreich beendet. Lsquo --ignore-missing rsquo Diese Option ist nur nützlich, wenn Checksummen überprüft werden. Wenn Sie Prüfsummen überprüfen, schlägt donrsquot fehl oder meldet einen Status für fehlende Dateien. Dies ist nützlich, wenn eine Untermenge von heruntergeladenen Dateien mit einer größeren Liste von Prüfsummen überprüft wird. Diese Option ist nur beim Überprüfen von Prüfsummen nützlich. Wenn Sie Prüfsummen überprüfen, erzeugt donrsquot eine rsquoOKrsquo-Nachricht pro erfolgreich geprüfter Datei. Dateien, bei denen die Überprüfung fehlschlägt, werden im Standardformat für eine Zeile pro Datei gemeldet. Wenn eine Prüfsummenfehlanpassung vorliegt, drucken Sie eine Warnung aus, die die Fehler des Standardfehlers zusammenfasst. Diese Option ist nur beim Überprüfen von Prüfsummen nützlich. Beim Überprüfen von Prüfsummen generiert donrsquot die standardmäßige Einzeilen-pro-Datei-Diagnose und die donrsquot-Ausgabe die Warnung, die alle Ausfälle zusammenfasst. Fehler beim Öffnen oder Lesen einer Datei evozieren noch einzelne Diagnosen auf Standardfehler. Wenn alle aufgeführten Dateien lesbar sind und mit den zugehörigen MD5-Prüfsummen konsistent sind, beenden Sie den Vorgang. Ansonsten beenden Sie mit einem Statuscode, der anzeigt, dass ein Fehler aufgetreten ist. Ausgabe-BSD-Prüfsummen, die den verwendeten Prüfsummenalgorithmus angeben. Als GNU-Erweiterung werden Dateinamen mit problematischen Zeichen wie oben beschrieben entschlüsselt, wobei der gleiche Escaping-Indikator von lsquo rsquo am Anfang der Zeile verwendet wird. Die --tag-Option impliziert den Binärmodus und ist mit dem --text-Modus als Unterstützung, die das Ausgabeformat unnötig komplizieren würde, unzulässig und bietet wenig Nutzen. Behandeln Sie jede Eingabedatei als Text, indem Sie sie im Textmodus lesen und ein lsquo rsquo-Flag ausgeben. Dies ist die Umkehrung von - binary. Diese Option ist die Voreinstellung für Systeme wie GNU, die nicht zwischen Binär - und Textdateien unterscheiden. Bei anderen Systemen ist dies die Voreinstellung für das Lesen der Standard-Eingabe, wenn die Standard-Eingabe ein Terminal ist. Dieser Modus wird nie verwendet, wenn --tag verwendet wird. Warnen Sie beim Überprüfen von Prüfsummen auf falsch formatierte MD5-Prüfsummenzeilen. Diese Option ist nur sinnvoll, wenn alle bis auf wenige Zeilen in der geprüften Eingabe gültig sind. Wenn Sie Prüfsummen überprüfen, wenn eine oder mehrere Eingabezeilen ungültig sind, beenden Sie den Befehl non zero, nachdem alle Warnungen ausgegeben wurden. Ein Exit-Status von Null gibt den Erfolg an, und ein Wert ungleich Null bedeutet failure. September 16, 2007 at 4:59 am 183 Abgelegt unter SQL Server SQL Server hat die Funktion CHECKSUM () (und BINARYCHECKSUM ()) zum Erzeugen von Hash-Werten. Dies ist eine einfache Hashfunktion, die Eingabewerte auf einen 32-Bit-INTEGER-Wert abbildet. CHECKSUM () und BINARYCHECKSUM () unterscheiden sich darin, wie sie Eingaben des String-Datentyps behandeln, siehe das BINARYCHECKSUM () - Thema in BOL für weitere Informationen. Wann verwenden Sie eine Hashfunktion Hash-Funktionen sind eine nützliche Option, um die Effizienz bestimmter Abfragen bei großen Datenmengen zu verbessern. Beispielsweise können Sie auf langen Textfolgen einen Hash-Index erstellen, um effiziente Lookups durchzuführen oder aggregierte Operationen zu beschleunigen. Hashwerte, die für eine ganze Zeile generiert werden, sind nützlich für die effiziente Suche nach Unterschieden zwischen Zeilen in Tabellen. Hash-Funktionen haben viele andere Verwendungen, die über den Rahmen dieses Post. Ein Problem mit CHECKSUM () besteht darin, dass die Wahrscheinlichkeit einer Kollision (die denselben Ausgabewert für zwei verschiedene Eingabewerte erzeugt) für alle Anwendungen nicht ausreichend niedrig ist, und es nicht zu schwierig ist, auf Beispiele zweier unterschiedlicher Eingaben Hashing zu demselben Ausgang zu kommen Wert. Natürlich sind Kollisionen mit jeder Funktion möglich, die eine größere Domäne als ihren Bereich hat (per Definition), nur dass die Wahrscheinlichkeit mit CHECKSUM () ein wenig zu hoch ist, um für viele Anwendungen zu leben. Beispielsweise zeigt das folgende Skript ein Beispiel für zwei UNIQUEIDENTIFIER-Werte, die denselben Wert haben: DECLARE guid1 UNIQUEIDENTIFIER. guid2 UNIQUE SELECT GUID1 82173DB7D309-A8F4-47C4-BA90-0CB458B44CB08242. guid2 8216EFE7F2C5-19F9-42B9-9C16-21BED41E882B8217 SELECT chksumguid1 CHECKSUM (GUID1), chksumguid2 CHECKSUM (guid2) Dies ist eine besondere Schwäche mit CHECKSUM () (und BINARYCHECKSUM ()), da es nur 2 32 möglichen Ausgangswerte hat. Sein triviales, um weitere Beispiele durch rohe Gewalt zu finden. Ob Sie sich um Kollisionen mit CHECKSUM () kümmern, hängt etwas von Ihren Anwendungsanforderungen ab. Für Lookups (über Hash-Index), Kollisionen sind in der Regel nicht so teuer, die Bereitstellung der ersten Lookup beseitigt den großen Anteil der Zeilen. Für Aggregate über einen großen Datensatz, Kollisionen beseitigen die Nützlichkeit der Hash-Funktion und sind daher sehr kostspielig. Sie können CHECKSUM () zweimal ausführen, sowohl gegen den Eingabewert als auch umgekehrt, wodurch ein kombinierter 64-Bit-Ausgabewert generiert wird. Dies verringert die Wahrscheinlichkeit einer Kollision. Die vorherigen zwei kollidierenden UNIQUEIDENTIFIER-Werte aus dem früheren Beispiel: DECLARE guid1 UNIQUEIDENTIFIER. guid2 UNIQUE SELECT GUID1 82173DB7D309-A8F4-47C4-BA90-0CB458B44CB08242. guid2 8216EFE7F2C5-19F9-42B9-9C16-21BED41E882B8217 SELECT chksumguid1 CONVERT (BIGINT. convert (BINARY (4), CHECKSUM (REVERSE (GUID1))) convert (BINARY (4), CHECKSUM (GUID1))). chksumguid2 CONVERT (BIGINT. CONVERT (BINARY (4), CHECKSUM (REVERSE (guid2))) convert (BINARY (4), CHECKSUM (guid2))) Die HASHBYTES () Funktion wurde mit SQL Server eingeführt 2005. Diese Funktion bietet die Möglichkeit Um eine Auswahl verschiedener Hash-Algorithmen anzugeben und mit CHECKSUM () zu vergleichen. für MD5 und SHA1 insbesondere ist weit weniger wahrscheinlich bei einer Kollision für verschiedene Eingänge (BOL erwähnt dies in der CHECKSUM () Thema) MD5 gibt ein 128-Bit-Wert und SHA1 gibt ein 160-Bit-Wert zu führen, so dass 2 128 und 2 160 mögliche Ausgabewerte.


No comments:

Post a Comment