i einen String (Name str) haben und i erzeugen aus, dass Hash-Code (Name H), i orginal string (Name str) aus empfangen hashcode (Name H)erhalten Daten von erzeugten Hash-Code()
Antwort
empfangen wollen Die kurze Antwort ist, dass Sie nicht können.
Das Erstellen eines Hashcodes ist eine Einwegoperation - es gibt keine umgekehrte Operation. Der Grund dafür ist, dass es (für alle praktischen Zwecke) unendlich viele Strings gibt, aber nur endlich viele Hash-Codes (die Anzahl möglicher Hashcodes ist durch den Bereich einer int
begrenzt). Jeder Hashcode könnte aus einer der unendlich vielen Zeichenfolgen erzeugt worden sein, die diesen Hash-Code ergeben, und es gibt keine Möglichkeit zu wissen, welche.
können Sie versuchen, es durch ein Brute Force Attack zu tun oder mit Hilfe von Rainbow tables
Wie auch immer, (auch wenn Sie bei der Suche nach etwas gelungen) mit diesen Methoden, würden Sie nur eine Zeichenfolge finden die gleiche hascode des mit Original, aber du bist ABSOLUTELY nicht sicher, dass die ursprüngliche Zeichenfolge wäre, weil Hascodes nicht eindeutig sind.
Mmh, vielleicht absolutely
ist sogar ein wenig restriktiv, weil Wahrscheinlichkeit sagt, Sie 99,999999999999 ...% wird nicht die gleiche Zeichenfolge finden: D
Hashing ist einen kurzen feste Größe Wert von einem in der Regel größeren Eingang zu erzeugen. Es ist im Allgemeinen nicht reversibel.
Mathematisch unmöglich. Es gibt nur 2^32 verschiedene int
s, aber fast unendlich viele Strings, so dass aus der pigeon hole principle folgt, dass Sie die Zeichenfolge nicht wiederherstellen können.
Sie können eine Zeichenfolge finden, die ziemlich leicht den HashCode passt, aber es wird wahrscheinlich nicht sein die Zeichenfolge, die ursprünglich gehasht wurde.
GetHashCode()
ist für den Einsatz in Hashtables konzipiert und so ist nur ein Leistungstrick. Es ermöglicht eine schnelle Sortierung des Eingabewerts in Buckets und nicht mehr. Sein Wert ist Implementierung definiert. Eine andere .net-Version oder eine andere Instanz derselben Anwendung gibt möglicherweise einen anderen Wert zurück. return 0;
ist eine gültige (aber nicht empfohlene) Implementierung von GetHashCode
und würde keine Informationen über die ursprüngliche Zeichenfolge liefern.
viele von uns möchten in der Lage sein, das zu tun: =)
- 1. Portable hashCode Implementierung für binäre Daten
- 2. C# Erkennen von erzeugten Prozessen
- 3. Daten von Combobox erhalten
- 4. hashCode gleich für Collections.unmodifiableCollection()
- 5. Persistenter Hashcode für Strings
- 6. Hintergrund erzeugten Prozess in
- 7. (psuedo) zufällige erzeugten Matrix
- 8. Java-Plattformbibliotheken HashCode
- 9. Schnellster Hashcode-Generator .NET
- 10. HashCode vs SHA-1
- 11. Gut hashCode() Implementierung
- 12. Daten von Datepicker erhalten materialisieren
- 13. Daten von XML-Knoten erhalten
- 14. erhalten Daten von in Gridview
- 15. Daten von 2 Tabellen erhalten
- 16. Daten von PHP-Variable erhalten
- 17. spezifische Daten von curl erhalten
- 18. Erhalten Sie Daten von Firebase
- 19. erhalten Daten von emberjs store.find
- 20. Daten von XCAsset-Katalog erhalten
- 21. Debuggen eines von Valgrind erzeugten Kerns
- 22. Java Array HashCode Implementierung
- 23. last() in erzeugten Funktionen
- 24. Wie funktioniert die Methode hashCode() von Java?
- 25. Generieren von equals/hashcode/toString mit Annotation
- 26. hashcode() und equals() Methode
- 27. Hashcode eines int
- 28. hashCode Implementierung für Singletonklasse
- 29. Java Hashcode() Zeichenketten Kollision
- 30. PCM-Daten von HLS von AVPlayer erhalten
Bitte mehr Informationen zur Verfügung stellen, aber ich denke, Sie versuchen, einen Einweg-Hash wie ein Zwei-Wege-Hash zu verwenden, was unmöglich ist. –
http://qdb.us/303622 –
@taspeotis: LOL: P – digEmAll