Verschlüsselung von Dateien [erledigt]

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Dragonkiller

Betreff: Verschlüsselung von Dateien [erledigt]

BeitragMo, Jan 01, 2007 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mir mal das Tutorial zum verschlüsseln von Dateien angeschaut aber bei mir haut da irgendwas nich hin wenn ich die datei entschlüssele hab ich die entschlüsselte und noch eine und wenn ich den code einfach nur kopiere der im tut steht passiert bei meinen dateien überhaupt nichts (OS = Win XP )

Code: [AUSKLAPPEN]

Graphics 320,200,32

SetBuffer BackBuffer()

.begin
dateipfad$ = Input("Dateipfad: ")

If FileType(dateipfad$)=False Then Goto begin

key=20

Cls
If KeyHit(2) Then encrypt(dateipfad$,key)
If KeyHit(3) Then decrypt(dateipfad$,key)


Text 0,0,"Drücke 1 zum verschlüsseln"
Text 0,12,"drücke 2 zum entschlüsseln"
Text 0,24,dateipfad$
WaitKey()

End

   



Function encrypt(dateipfad$,key)
   newdatei=WriteFile(dateipfad$+"enc")
   datei=OpenFile(dateipfad$)
   File_Size = FileSize(dateipfad$)
   bank = CreateBank(file_size)

   
   ReadBytes(bank,datei,0,file_size)

   For i=1 To file_size-1

   temp=PeekByte(bank,i)
   temp=temp+key
   PokeByte(bank,i,temp)
   
   Next
   
   SeekFile(datei,0)
   
   WriteBytes(bank,newdatei,0,file_size)
   
   CloseFile(datei)
   
   FreeBank(bank)
   
End Function

Function decrypt(dateipfad$,key)
   newdatei=WriteFile(Replace(dateipfad$,"enc",""))
   
   datei=OpenFile(dateipfad$)
   File_Size = FileSize(dateipfad$)
   bank = CreateBank(file_size)
   
   
   ReadBytes(bank,datei,0,file_size)

   For i=1 To file_size-1

   temp=PeekByte(bank,i)
   temp=temp-key
   PokeByte(bank,i,temp)
   
   Next
   
   SeekFile(datei,0)
   
   WriteBytes(bank,newdatei,0,file_size)
   
   CloseFile(datei)
   
   FreeBank(bank)
   
   DeleteFile(dateipfad$+"enc")
   
End Function
   
  • Zuletzt bearbeitet von Dragonkiller am Di, Jan 02, 2007 12:53, insgesamt einmal bearbeitet

Axe

BeitragDi, Jan 02, 2007 11:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Hauptcode ist falsch.
Dragonkiller hat Folgendes geschrieben:

Graphics 320,200,32

SetBuffer BackBuffer()

.begin
dateipfad$ = Input("Dateipfad: ")

If FileType(dateipfad$)=False Then Goto begin

key=20

Cls
If KeyHit(2) Then encrypt(dateipfad$,key)
If KeyHit(3) Then decrypt(dateipfad$,key)


Text 0,0,"Drücke 1 zum verschlüsseln"
Text 0,12,"drücke 2 zum entschlüsseln"
Text 0,24,dateipfad$
WaitKey()

End
....


Für die Abfrage des Namens ist eine Repeat ... Until Schleife.

Code: [AUSKLAPPEN]

Repeat
dateipfad$ = Input("Dateipfad: ")
Until FileType(dateipfad$)=1

Damit ist die Abfrage auch gleich ein wenig sicherer, denn vorher hast du nur abgefragt, ob es irgendwas mit dem Namen gibt, das kann auch ein Ordner sein. Mit dieser Abfrage werden Ordner ausgeschlossen.

Der erste Teil war noch nicht so schlimm und dürfte auch schon vorher funktioniert haben. Bei nächsten Abschnitt hast du jedoch gar keine Schleife verwendet. Deswegen kommst du gar nicht dazu eine Taste zu drücken.
Code: [AUSKLAPPEN]

Cls
Text 0,0,"Drücke 1 zum verschlüsseln"
Text 0,12,"Drücke 2 zum entschlüsseln"
Text 0,24,"Drücke Esc zum abbrechen"
Text 0,36,dateipfad$
Flip
Repeat
If KeyHit(2) Then encrypt(dateipfad$,key):End
If KeyHit(3) Then decrypt(dateipfad$,key):End
Until KeyHit(1)
End

Dieser Code schriebt den Erklärungstext nur einmal vor der Schleife.
In der Schleife wird dann auf einen Tastendruck gewartet. Man könnte hier auch noch eine kleine Pause einfügen oder Waitkey() einsetzen und den zurückgegeben Code vergleichen. Aber so ist es erstmal einfacher zu verstehen.

Hier nochmal den gesamten neuen Code: [AUSKLAPPEN]

Graphics 320,200,32
SetBuffer BackBuffer()

Global key=20

Repeat
dateipfad$ = Input("Dateipfad: ")
Until FileType(dateipfad$)=1

Cls
Text 0,0,"Drücke 1 zum verschlüsseln"
Text 0,12,"Drücke 2 zum entschlüsseln"
Text 0,24,"Drücke Esc zum abbrechen"
Text 0,36,dateipfad$
Flip
Repeat
If KeyHit(2) Then encrypt(dateipfad$,key):End
If KeyHit(3) Then decrypt(dateipfad$,key):End
Until KeyHit(1)
End

Function encrypt(dateipfad$,key)
   newdatei=WriteFile(dateipfad$+"enc")
   datei=OpenFile(dateipfad$)
   File_Size = FileSize(dateipfad$)
   bank = CreateBank(file_size)

   
   ReadBytes(bank,datei,0,file_size)

   For i=1 To file_size-1

   temp=PeekByte(bank,i)
   temp=temp+key
   PokeByte(bank,i,temp)
   
   Next
   
   SeekFile(datei,0)
   
   WriteBytes(bank,newdatei,0,file_size)
   
   CloseFile(datei)
   
   FreeBank(bank)
   
End Function

Function decrypt(dateipfad$,key)
   newdatei=WriteFile(Replace(dateipfad$,"enc",""))
   
   datei=OpenFile(dateipfad$)
   File_Size = FileSize(dateipfad$)
   bank = CreateBank(file_size)
   
   
   ReadBytes(bank,datei,0,file_size)

   For i=1 To file_size-1

   temp=PeekByte(bank,i)
   temp=temp-key
   PokeByte(bank,i,temp)
   
   Next
   
   SeekFile(datei,0)
   
   WriteBytes(bank,newdatei,0,file_size)
   
   CloseFile(datei)
   
   FreeBank(bank)
   
   DeleteFile(dateipfad$+"enc")
   
End Function

MfG Axe

Dragonkiller

BeitragDi, Jan 02, 2007 12:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke deine Veränderungen haben alle Fehler behoben Very Happy Very Happy Very Happy Very Happy Very Happy

Axe

BeitragDi, Jan 02, 2007 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Kein Problem!

Merke dir die Hinweise fürs nächste Mal!

Gruß Axe

Dragonkiller

BeitragDi, Jan 02, 2007 14:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo mach ich

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group