Wenn so etwas wirklich gewünscht ist, können Sie anstelle von Hashing die Zeichenfolgen zur Laufzeit aus einem numerischen Eingabewert erstellen.
Der Vorteil ist, dass es, wie von @Philipp hervorgehoben, etwas sinnlos ist, Codes in der ausführbaren Datei zu verstecken, wenn Sie damit rechnen können, dass sie ohnehin im Internet veröffentlicht werden. Ob mit oder ohne Hash, dasselbe Wort, das im Internet gefunden und in das Spiel eingegeben wurde, gibt den gleichen Hash und funktioniert in beide Richtungen.
Außer ... außer wenn der Code eines anderen nicht für Sie funktioniert . Was Sie trivialerweise tun können - nicht 100% manipulationssicher, aber für den Durchschnittsbenutzer einigermaßen umständlich. Alles, was so einfach ist wie der "Online Elven-Namensgenerator" (kann beliebig einfach sein, braucht wirklich nicht viel von einer Markov-Text-Engine, 4-5 Silben aus einer zufälligen Liste zu ziehen, ist gut genug).
Generieren Sie einfach eine etwas benutzerspezifische oder maschinenspezifische Nummer, sie muss nicht einmal absolut eindeutig oder sehr manipulationssicher sein. Etwas, das für die meisten Menschen wahrscheinlich anders ist und sich wahrscheinlich nicht regelmäßig ändert, z. B. der Netzwerkname des Computers, die MAC-Adresse oder die GUID des Systemlaufwerks, unabhängig davon (die GPU-Seriennummer ist möglicherweise sehr schlecht)Idee, da Benutzer wahrscheinlich GPUs aktualisieren). Fügen Sie dazu den numerischen Code hinzu, auf den sich der Entsperrcode bezieht, und geben Sie diesen in Ihren Textgenerator ein. Seien Sie jedoch bereit, Supportanfragen zu beantworten, wenn Spieler zwei Computer verwenden oder ihre Netzwerkkarte wechseln (was ungewöhnlich, aber nicht unmöglich ist). Es könnte ein guter Plan sein, die zufällige ID nur einmal zu generieren und mit den Einstellungen des Spiels zu speichern. Auf diese Weise werden zumindest vorhandene Installationen auf demselben Computer nicht beschädigt, wenn sich etwas ändert.
Oder Sie verwenden einfach die Seriennummer des Spiels, die eindeutig ist und funktioniert, wenn der Benutzer die Hardware wechselt (ironischerweise kann dies jedoch zu Raubkopien führen, da freigegebene Freischaltcodes für Raubkopien funktionieren, aber nicht für legitime Kunden!).
Beachten Sie, dass es nicht unbedingt gut ist, zu verhindern, dass Benutzer betrügen. In einem Offline-Spiel (dh einem Spiel ohne Konkurrenz) ist es normalerweise kein Problem, wenn der Benutzer betrügt und die Codes von irgendwoher erhält, anstatt sie zu spielen. Er betrügt sich nur. Wen interessiert das.
Andererseits ist es eine großartige Gelegenheit, sich zu sehr in den Weg zu stellen, wenn sie wirklich betrügen wollen, um zahlende Kunden völlig zu verärgern .
Also ... bevor Sie etwas auf diese Weise tun, überlegen Sie sich genau, ob Sie das wirklich wollen und was Sie wollen. Möglicherweise ist es gerade gut genug und in der Tat vorzuziehen, von Menschen lesbare Zeichenfolgen zu haben (oder mit xor trivial "unlesbar" zu machen).