Fehler bei einfacher Textverschlüsselung

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Muck

Betreff: Fehler bei einfacher Textverschlüsselung

BeitragFr, Mai 12, 2006 16:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte relativ einfach meine Textdateien verschlüsseln. Die unten abgebildete Methode schien auch erst zu klappen, aber leider kommt es manchmal beim Speichern zu Zeilensprüngen etc., wodurch dann die Daten im A... sind. Kann man das verhindern oder gibt es noch eine bessere Methode?


Code: [AUSKLAPPEN]

; Namen laden ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Dim Namen$(100)

datenfile = ReadFile("namen.dat")
key = ReadLine$(datenfile)

For a = 0 To 100
   Namen$(a) = Text_Verschluesselung$(ReadLine$(datenfile),key)
Next

CloseFile datenfile


; Namen speichern ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

datenfile = WriteFile("namen.dat")
key = Rand(0,1000000) ; zufälligen Key berechnen
WriteLine datenfile, key

For a = 0 To 100
   WriteLine datenfile, Text_Verschluesselung$(Namen$(a),key)
Next
   
CloseFile datenfile



Function Text_Verschluesselung$(txt$,key)

   For oft = 1 To Len(txt$)
      zeichen$ = Mid$(txt$,oft,1)
      txt_new$ = txt_new$+Chr$(Asc(zeichen$)Xor key)
   Next
   
   Return txt_new$

End Function
Latte! Fußballmanagement pur

Mr.Keks

BeitragFr, Mai 12, 2006 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
dein problem: du verschlüsselst ja zur zeit die zeilensprünge nicht. bb macht ja bei writeline die standardzeilenendzeichen ans ende. allerdings kann dir passieren, dass die verschlüsselten buchstaben auch ein zeilensprungzeichen ergeben. dadurch werden beim laden unter umständen andere zeilen eingelesen als beim speichern geschrieben wurden. da du halt beim speichern innerhalb der zeilen noch zeilensprungzeichen speicherst, die nur verschlüsselte normale zeichen sind.
das lässt sich allerdings vermeiden. z.b. kannste einfach writestring und readstring nehmen ^^. oder du speicherst erstmal als normales textfile und verschlüsselst dann zeichen für zeichen. ohne rücksicht auf zeilensprünge.

ich sehe gerade dass dein key größer ist als das jeweils verschlüsselte zeichen. erscheint mir so irgendwie gefährlich. versuch mal rand(255) bei der keyerstelleung... sonst kommste möglicherweise auf zeichen außerhalb des byte/ascii-bereichs. das würde eine rückentschlüsselung echt erschweren ^^.
MrKeks.net
 

Muck

BeitragFr, Mai 12, 2006 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Inarie, mein Held... Mit writestring geht es. Smile
Latte! Fußballmanagement pur

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group