generieren Ich möchte eine eindeutige Zahl aus Zeichenfolge generieren. Die Zeichenfolge ist eine Kombination aus Benutzername und Passwort. Ich möchte aus dieser Kombination eine eindeutige Nummern-ID (keine Zeichenfolge) generieren. Ich md5 zuerst die Kombination und dann wandeln Sie es in Nummer um. Die Nummernlänge muss 10 sein. Irgendwelche Vorschläge?Wie eindeutige Nummer aus Zeichenfolge in node.js
Antwort
Es wäre am besten, wenn Sie weitere Details zu dem Drittanbieter angeben können, mit dem Sie interagieren möchten, da dies eine sehr merkwürdige Anfrage ist und einen grundlegenden Fehler enthält. Sie fragen nach der Nummer eindeutig, aber Sie sind für nur 10 Dezimalstellen ("Nummer ID") Ziffern oder ~ 10 Milliarden möglichen Werte.
Das klingt nach einer Menge, aber es ist wirklich nicht. Dies gibt Ihnen einen Hash von nur über 33 Bits. Der einfache Hash-Kollisionswahrscheinlichkeitsrechner bei http://davidjohnstone.net/pages/hash-collision-probability stellt dies bei einer Wahrscheinlichkeit von 44% für eine Kollision bei nur 100.000 Einträgen. Dies setzt jedoch die volle Nutzung aller verfügbaren Eingabezeichen voraus. Da die Kombinationen aus Benutzername und Passwort fast immer auf alphabetische und numerische Zeichen beschränkt sind, ist die tatsächliche Kollisionswahrscheinlichkeit bei viel weniger Einträgen viel schlechter (kann nicht berechnet werden, ohne die Zeichen zu kennen, die Sie für diese Felder zulassen - aber es ist schlecht).
NodeJS bietet zahlreiche Crypto-Funktionen im crypto
Modul. Es steht eine ganze Reihe von Hash-Funktionen zur Verfügung, einschließlich der SHA * -Optional-Case-Optionen. Diese können verwendet werden, um sichere, irreversible Hashes mit astronomischen Kollisionswahrscheinlichkeiten bereitzustellen.
Wenn diese Optionen nicht für Sie verwendbar sind, würde ich vorschlagen, dass Sie einen grundlegenden Designfehler haben. Sie weisen mit hoher Wahrscheinlichkeit eine Benutzer/Kennwort-Kombination einer Benutzer-ID in einem Remote-System zu, so dass ein Angreifer bei einem einfachen Brute-Force-Angriff aufgrund des hohen Kollisionsrisikos in Ihrem Modell leicht Kompromisse eingehen könnte.
Wenn Sie tun, was ich denke, Sie tun, wäre der "richtige" Weg, dies zu tun, eine einfache Datenbank auf einem Server irgendwo zu haben. Dem Benutzer/Pass wird eine eindeutige ID zugewiesen, und es spielt keine Rolle, worum es sich dabei handelt - es könnte sich um ein Autoinkrement-ID-Feld in einer einzelnen MySQL-Tabelle handeln. Der Server würde dann diesen Remote-Dienst mit dem ID-Wert für alle erforderlichen API-Aufrufe kontaktieren und die Ergebnisse an den Benutzer zurückgeben. Dies eliminiert das Sicherheitsrisiko, da der Benutzername/das Passwort nicht wirklich gehackt, nur gespeichert und bei jedem Anruf 100% geprüft werden kann.
Verwenden Sie niemals einen Hash als primären Datenwert. Es ist eine Vereinfachung, kein eigenständiger Wert.
- 1. konvertieren Zeichenfolge in Nummer node.js
- 2. PHP eindeutige Nummer in Array
- 3. generieren eindeutige Nummer
- 4. wie eindeutige Zeichenfolge erzeugen
- 5. eine Nummer aus einer Zeichenfolge in Python
- 6. Node.js - Wie in Zeichenfolge streamen
- 7. Eindeutige ID aus alphanumerischer Zeichenfolge generieren
- 8. Erste Nummer aus der Zeichenfolge mit regexp
- 9. Nummer nach Zeichen aus Zeichenfolge abrufen?
- 10. Eindeutige Zeichen aus DateFormat.format (...)
- 11. $ ('*'). Index (currentElement) gibt eine eindeutige Nummer?
- 12. Rechtschreibprüfung, eindeutige Nummer für das Wort
- 13. Extract Nummer aus Zeichenfolge mit Regex in groovy
- 14. Nummer in Zeichenfolge ersetzen - C#
- 15. Probleme beim Lesen einer Zeichenfolge aus TCP-Socket in Node.js
- 16. Erzeuge eine eindeutige Zeichenfolge in Python/Django
- 17. Extrahieren eindeutige Zahlen von Zeichenfolge in R
- 18. Servlets Erträge/generieren eindeutige Zeichenfolge
- 19. So holen Sie eindeutige Zeichen in Zeichenfolge
- 20. Eindeutige ID von nginx zu node.js App?
- 21. bash: Wie Episode Nummer aus einem String
- 22. extrahieren Nummer aus einer Zeichenfolge von Text - Excel
- 23. Wie finde ich eine Nummer in einer Zeichenfolge mit JavaScript?
- 24. Überprüfen Sie eine Nummer in SQL Server und generieren Sie dann eine eindeutige Nummer in C#
- 25. Problem beim Herausziehen einer beliebigen Nummer aus der Zeichenfolge
- 26. Nummer aus String in Java
- 27. Konvertieren der Nummer in 5-stellige Zeichenfolge
- 28. Schienen konvertieren Zeichenfolge zu Nummer
- 29. Wie die Zeichenfolge mit node.js trimmen?
- 30. Suchen Sie die lexikografisch größte eindeutige Zeichenfolge
Warum muss es numerisch sein? Verwenden Sie einen db Identitätsspaltenwert? –
Was genau willst du hier bauen? – Thomas
Ursache der Drittanbieter-Dienst erfordert es, Nummer zu sein. –