Verschlüsseln von *.txt-Dateien
Übersicht

![]() |
PaulBetreff: Verschlüsseln von *.txt-Dateien |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tag zusammen.
Für mein Spiel muss ich Datein in Dateien Speichern. Nun will ich natürlich nich, dass jeder in die level.txt Datei 14 eingibt und schon ist er im 14. Level. Wie kann ich den Spaß möglichst einfach verschlüsseln? Paul |
||
Stratocaster black - Roland MicroCube
User posted image Girgl-World, wer's nich kennt, is' blöd! |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab das noch nie gemacht, aber sollte so gehen:
Code: [AUSKLAPPEN] SeedRnd 1000
Sollte ziemlich sicher sein.
For ... wert=wert Xor Rand(0,5000) ; wert speichern Next P.S.: Was ist eigentlich mit Girgl World? War schon lange nicht mehr im Projekte-Forum. Gibts schon was neues? |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm...
diese Verschlüsselung ist zwar nicht die beste, aber eine schnelle: Verschlüsselung = 255 - ZuVerschlüsselndesByte das geht dann nämlich genauso wieder andersherum: ZuVerschlüsselndesByte = 255 - Verschlüsselung Das ganze einfach für jedes Byte, was in der Textdatei drinne ist durchrattern, fertig! ![]() |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
also wenn deine levels nicht die 255 übersteigen, kannst du die levelnummer auch einfach mit writebyte speichern ![]() ... oder halt writeshort/writeint ansonsten ist xor wirklich das einfachste. Code: [AUSKLAPPEN] repeat
writebyte file2,readbyte(file1) xor "g" until eof(file1) Zitat: wert=wert Xor Rand(0,5000) clever, und wie findest du die rands beim entschlüsseln wieder raus?
|
||
MrKeks.net |
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: clever, und wie findest du die rands beim entschlüsseln wieder raus?
mit seedrnd sollte es gehen ODER? Testet das mal ob es überall geht!Code: [AUSKLAPPEN] SeedRnd (1000)
For t= 0 To 1000 x= x + Rand(50000) Next Print x If x - 25069750 Print "keine gute Idee!!" Else Print "es geht!!" End If WaitKey |
||
[BB2D | BB3D | BB+]
|
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rand würde ich nicht nehmen - wer weiß ob es immer gleich ist oder gleich bleibt...
man könnte festplatten-nummer von C: auslesen und das als schlüssel benutzen... Nur so darf man natürlich nur Daten auf einem PC haben - Übertragen von PC1 auf PC2 geht dann nicht... Ich benutze MD5-Fingerprint - damit erstelle ich aus einem kurzen String einen 2048 bit langen sehr kryptischen schlüssel und XORe dann alle Daten. Normalerweise muß man nachdem man einen block verschlüsselt hat, den dann wieder als schlüssel nehmen und nächsten block damit verschlüsseln usw... (ist etwas sicherer, ich lasse das aber) |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
René Meyer |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Relativ einfach und sicher:
Du speicherst 200 Zufallsbytes ab. Danach den aktuellen Level XOR 47 Danach noch einmal 200 Zufallsbytes. |
||
www.blitzbasic.de | Das Buch zu Blitz Basic: www.schreibfabrik.de/txt/bbb |
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder das hier:
z.B. in Level 25 Level speichern per: SaveLevel(25) Level lesen per: level = ReadLevel() <--- gibt dann 25 zurück Code: [AUSKLAPPEN] EDIT: Verbesserte Version untendran! |
||
- Zuletzt bearbeitet von Ctuchik am So, Mai 16, 2004 20:02, insgesamt einmal bearbeitet
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
Achtung! Neue und verbesserte Version:
Code: [AUSKLAPPEN] Function SaveLevel(level%) Local save$ = WriteFile("save.dat") Local summe% = 0 For a=0 To Rand(100,200) zahl% = Rand(0,255) summe% = summe% + zahl% WriteByte save$, zahl% Next neuesumme% = (summe% + level%) Mod 256 WriteByte save$, ((summe% + neuesumme%) Mod 222) WriteByte save$, neuesumme% CloseFile(save$) End Function Function ReadLevel() Local save$ = ReadFile("save.dat") Local summe% = 0 Local zahl% = ReadByte(save$) While True nextzahl% = ReadByte(save$) If Not(Eof(save$)) summe% = summe% + zahl% zahl% = nextzahl% Else Exit End If Wend neuesumme% = summe% Mod 256 If nextzahl% > neuesumme% level% = nextzahl% - neuesumme% Else level% = nextzahl% - neuesumme% + 256 End If If zahl% <> ((summe% + nextzahl%) Mod 222) Then RuntimeError("Error: Save-Datei fehlerhaft! Wohl versucht zu cheaten, was? ;)") CloseFile(save$) Return level% End Function |
||
![]() |
Paul |
![]() Antworten mit Zitat ![]() |
---|---|---|
huiii, dankeschön für die Mühen Ctuchik!!!
Paul |
||
Stratocaster black - Roland MicroCube
User posted image Girgl-World, wer's nich kennt, is' blöd! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group