2011-01-06 7 views
0

Ich habe einige binäre Daten (Blobs) aus einer Datenbank, und ich muss wissen, welche Komprimierungsmethode bei ihnen verwendet wurde, um sie zu dekomprimieren.Identifizieren der Kompressionsmethode, die für Blob/Binärdaten verwendet wird

Wie kann ich feststellen, welche Komprimierungsmethode verwendet wurde?

+0

Es ist nicht klar, ob die "Datenbankdateien" die Dateien für die "mssql-Datenbank sind, die jemand anders gemacht hat" oder die Datenbank * selbst Dateien (die komprimiert sind) als BLOBs speichert. Die Tatsache, dass Sie BLOBs erwähnen, impliziert Letzteres, aber ... –

+0

Es gibt ein proprietäres Programm, das die Dateien (Bilder, PDFs usw.) als Blobs in der Datenbank speichert. –

+0

Verschrotten Sie das Zeug in Ihrer Frage, die völlig irrelevant ist. PHP, SQL, BLOB - Sie hätten genau (!) Das gleiche Problem, wenn die Binärdaten in Dateien auf der Disc leben würden und Sie C# verwendet hätten. – TomTom

Antwort

0

Die einzige Möglichkeit, dies zu tun, wäre im Allgemeinen zu speichern, welche Komprimierungsmethode beim Speichern des BLOBs verwendet wurde.

+0

Also gibt es keine Möglichkeit, die Komprimierung rückzuentwickeln? –

+0

Ich glaube nicht, dass es überhaupt möglich ist, die Komprimierungsmethode zurückzuentwickeln, selbst wenn Sie sowohl die komprimierte als auch die nicht komprimierte Datei haben. Es gibt wahrscheinlich Umstände, unter denen dies möglich wäre, aber es ist im Wesentlichen eine Form der Kryptoanalyse, also ist es eher eine Kunst als eine algorithmische. –

1

Eigentlich ist es einfacher. Angenommen, eine der Standardmethoden wurde verwendet, möglicherweise gibt es am Anfang einige magische Bytes. Ich schlage vor, die hex Werte der ersten 3-4 Bytes zu taifen und google zu fragen. Es macht keinen Sinn, eigene Kompressionen zu entwickeln, also ... es sei denn, der Fall war speziell oder der Programmierer dumm, er verwendete eine der bekannten Komprimierungsmethoden. Sie können auch Bücher der beliebtesten nehmen und einfach versuchen, was sie sagen.