Gegeben diese Methode in c #
%Vor%Wie würde man diesen Prozess mit einer "DecodeFileHash" -Methode umkehren?
%Vor%wo decodedQuery == fileQuery am Ende.
Ist das überhaupt möglich? Wenn es nicht möglich ist, würde es irgendwie einen Hash erzeugen, den ich leicht entschlüsseln könnte?
Edit: Um es klar zu sagen, ich möchte nur die Variable "fileQuery" komprimieren und fileQuery dekomprimieren, um festzustellen, was es ursprünglich war. Irgendwelche Vorschläge zur Lösung dieses Problems seit dem Hashing / Decoding ist out?
Edit Again: Ein Base64 Encoding / Decoding zu machen, klingt dann wie die optimale Lösung.
%Vor%Ein Hash wird von der ursprünglichen Information abgeleitet, enthält jedoch nicht die ursprüngliche Information. Wenn Sie einen kürzeren Wert wünschen, der die ursprünglichen Informationen verbirgt, aber auf den ursprünglichen Wert aufgelöst werden kann, sind Ihre Optionen ziemlich begrenzt:
Was Sie tun möchten, ist Verschlüsseln und Entschlüsseln ....
Nicht Hash und Unhash, was, wie @Thomas herausstellte, unmöglich ist. Hashes werden in der Regel mit Hilfe von Rainbow-Tabellen oder anderen Datasets, die etwas enthalten, das den gleichen Hash erzeugt ... nicht garantiert der Eingabewert, nur einige -Werte, die die gleiche Ausgabe im Hashalgorithmus erzeugt .
Jeff Atwood hat hier einen guten Code zum Verständnis der Verschlüsselung:
Ссылка
Wenn das für Sie nützlich ist
Ein kryptografischer Hash ist per definitionem nicht mit typischen Mengen an Rechenleistung umkehrbar. Es ist normalerweise nicht einmal möglich, eine Eingabe zu finden, die den gleichen Hash wie die ursprüngliche Eingabe hat.
Das Zurückgeben der ursprünglichen Eingabe ist mathematisch unmöglich, wenn mehr als 2 ^ n verschiedene Eingaben vorhanden sind. Wobei n die Bitlänge des Hashes ist (128 für md5). Schaut nach dem Taubentechnischen Prinzip.
Ein Hash ist keine verlustfreie Komprimierungsfunktion.
Ein kryptografischer Hash, wie MD5, ist als eine Einwegfunktion ausgelegt, dh es ist rechnerisch nicht machbar, die Quelldaten abzuleiten, aus denen ein bestimmter Hash berechnet wurde. MD5 wurde jedoch aufgrund der aufgedeckten Schwächen für einige Zeit als nicht sicher betrachtet:
Wikipedia auf MD5-Sicherheit MD5 als schädlich angesehen
Eine weitere Schwachstelle in MD5 ist, dass aufgrund seiner relativ geringen Größe große Regenbogen-Tabellen veröffentlicht wurden, die einen Einblick geben up einen gegebenen MD5-Hash, um eine Quelleingabe zu erhalten, die mit dem angegebenen Hash-Wert kollidiert.
Tags und Links c#