Was ist die beste Einweg-Permutationsfunktion, die ich verwenden könnte, um eine E-Mail verdauen, so dass ich es als Primärschlüssel verwenden kann, ohne persönliche Daten zu speichern?One-Way-Verschlüsselung Primärschlüssel
Ich bekomme mein erstes F2P-Spiel fertig: ein einfaches, aber (hoffentlich) süchtig machendes 2D-Puzzlespiel, das auf Zielmechanik basiert. Es ist mit Unity gemacht und wird bald auf Android veröffentlicht werden.
Damit der Player die gleichen Daten über verschiedene Geräte behält, habe ich eine SQL-Tabelle mit der Geräte-E-Mail als Primärschlüssel, dann eine andere Zeichenfolge als Savegame-Daten.
Aber ich möchte die Benutzer E-Mail aus Gründen der Privatsphäre nicht speichern. So
Ich dachte, es mit einer gewissen Funktion der Verdauung, die die ursprüngliche E-Mail verwenden würde eine neue Zeichenfolge zu erzeugen, dass:
- einzigartig ist (kollidieren nie mit einer anderen Zeichenfolge erzeugt aus einer anderen E-Mail Adresse)
- nicht decypherable ist (sollte es keine Möglichkeit, die Original-E-Mail aus dem aufgeschlossenen Zeichenfolge zu erhalten - oder zumindest sollte es hart genug sein)
So kann ich immer noch das Android-Gerät verwenden könnte E-Mail zum Abrufen der Spielstände, wit hout persönliche Daten vom Spieler speichern.
Soweit ich recherchiert habe, scheint die Lösung eine Einweg-Permutationsfunktion genannt zu werden. Das Problem ist, dass ich keine passende Funktion im Internet finden kann; Stattdessen scheinen alle Antworten mit Lösungen für Password-Hashing geplagt zu sein, was sehr interessant ist (Salzen, MD5, SHAXXX ...), aber nicht meine erste Anforderung von keiner Kollision erfüllen.
Vielen Dank im Voraus für eine Antwort zu diesem Thema.
Danke, ich werde, aber obwohl die Antwort sehr nützlich ist, erfüllt es meine erste Anforderung nicht: wird nie kollidieren. Ja, es ist sehr unwahrscheinlich, aber das ist eine sehr wichtige Voraussetzung in meinem Fall, da ich diese Funktion verwenden würde, um einen Benutzer zu identifizieren. Es wäre nicht sehr gut, wenn jemand das Spiel starten und den Spielstand eines anderen Spielers suchen würde - und es wäre auch nicht für den anderen Spieler zu finden, dass ein Fremder seine Spielstanddaten gelöscht hat. Ich fürchte, wenn ich deine Antwort akzeptiere, wird niemand versuchen, einen besseren Vorschlag zu machen. Also bitte versteh mich, wenn ich noch etwas warte. Vielen Dank! – EJSainz
Ah, mir war nicht klar, dass das Spiel über das Ende des Universums hinausgehen würde. In diesem Fall reicht SHA-256 nicht aus. – zaph
Aber ich unterscheide mich von "sehr unwahrscheinlich", dass nicht einmal ein Power Ball Gewinner ist.Hier ist ein Gedankenexperiment, das wahrscheinlicher ist: Eine SHA-256-Kollision, ein schwerer Sicherheitsfehler in Ihrem Code oder ein erfolgreicher Angriff auf Ihren Server? – zaph