Autor Beitrag
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Mo 24.11.08 23:10 
Hallo allerseits,

ich habe keinen besseren Threadtitel gefunden, wenn jemandem eine bessere Bezeichnung für mein Problem einfällt, bitte einmal melden, ich änder das dann.

Mein Problem: Ich will in einem Spiel ein Award-System einbauen d.h. dass der Spieler durch besondere Leistungen kleine Gimmicks freispielen kann. Diese "besonderen Leistungen" sind in keine Reihenfolge zu bringen, da sie unabhängig voneinander erreicht werden können (zB erst Award Nummer 3, dann 1, dann 7 usw.).

Nun will ich natürlich auch speichern, welche Awards der Spieler schon bekommen hat, damit er das nicht jedes mal neu machen muss. Im Moment speicher ich alle Optionseinstellungen in einer ini-Datei, in dieser würde ich auch gerne einen Code haben, der mir Auskunft darüber gibt, welche awards schon erreicht wurden.

Mein Problem liegt jetzt darin, dass ich nicht wirklich weiß wie ich den Code aufbauen soll, damit er nicht allzu leicht geknackt werden kann (völliger Schutz ist natürlich nicht möglich, aber das Knacken des Codes sollte schon seine 10 Minuten dauern).

Mein erster Ansatz war einfach für jeden Award ein Kürzel in dem Code zu verwenden (ähnlich wie in der Adventsgewinnspiel-Ankündigung) und diese Kürzel dann einfach zum fertigen Code aneinanderreihen. Jedoch scheint mir das sehr unsicher zu sein, abt ihr da bessere Vorschläge?

Gruß
Basti
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10184
Erhaltene Danke: 1259

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 24.11.08 23:19 
Moin!

Wenn ich dich richtig verstanden habe, willst du Bits verstecken (sagen wir mal, 16 Stück). Ein Ansatz könnte sein:
  • 16 zufällige Bytes erzeugen
  • in jedem Byte eines der Bits "passend" setzen (nach einer zufällig, aber im Programm fest verankerten, Folge)
  • eine Prüfsumme dranbasteln, damit einfache Manipulationen auffallen
  • die große Binärzahl z.B. base24-codiert (oder auch base64, fällt aber leichter auf) als String ausgeben

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1337
Erhaltene Danke: 119

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Mo 24.11.08 23:34 
Ich gehe an die Sache eigentlich immer andersrum ran wenn es nicht stört das jemand die gespeicherten Daten ließt.
Ich speichere einfach zusätzlich zu den Daten eine Prüfsumme, passt die beim Einlesen nicht mehr zu den Daten hat sich an denen jemand vergriffen. Was man dann macht hängt ganz davon ab was man mit den Daten bezweckt.
In deinem Fall wäre vieleicht eine schöne Meldung angebracht und das rücksetzen auf den Anfangsstand so dass man sich alles neu erarbeiten muss.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
Jann1k Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: Mo 24.11.08 23:52 
Der Ansatz von Narses gefällt mir da doch schon sehr, ich werde mal schauen wie weit ich damit komm.