Seite 1 von 2

Base64encoder

Verfasst: 04.05.2009 20:33
von Sauer-RAM
Hi
ich würde gerne ein normales Textdokument mit dem Base65encoder verschlüsseln. Ich weis aber nicht wie das geht und in der Hilfe steht nur was von eingabe und ausgabebuffer, was ist das?
kann mir einer mal erklären wie ich diesen Befahl überhaupt benutze?
Danke

Re: Base64encoder

Verfasst: 04.05.2009 20:36
von Kiffi
Sauer-RAM hat geschrieben:ich würde gerne ein normales Textdokument mit dem Base65encoder verschlüsseln.
bevor wir weiter diskutieren: Du weißt schon, dass Base64 keine richtige
Verschlüsselung ist und jeder halbwegs firme Anwender das in Windeseile
und ohne grosse Mühen wieder 'entschlüsseln' kann? (ich meine nur in
Hinsicht auf Deine Kopierschutzbemühungen im anderen Thread)

Grüße ... Kiffi

Verfasst: 04.05.2009 20:40
von milan1612

Code: Alles auswählen

If OpenFile(0, "c:\text.txt") ;Datei oeffnen
  *buffer = AllocateMemory(Lof(0)) ;Speicher fuer den Dateiinhalt anfordern
  ReadData(0, *buffer, Lof(0)) ;Den Inhalt in den reservierten Speicher lesen
  *outbuffer = AllocateMemory(Lof(0) * 1.35) ;Speicher fuer die verschluesselten Daten anfordern (35% groesser als die Datei)
  length = Base64Encoder(*buffer, Lof(0), *outbuffer, Lof(0) * 1.35) ;Verschluesseln - length enthaelt die genaue Laenge
  FreeMemory(*buffer) ;Den Speicher der Originaldaten freigeben
  ReAllocateMemory(*outbuffer, length) ;Den Outputbuffer auf die richtige Groesse schrumpfen
  FileSeek(0, 0) ;Zum Anfang der Datei navigieren
  WriteData(0, *outbuffer, length) ;Den Output reinschreiben
  FreeMemory(*outbuffer) ;Den Buffer freigeben
  CloseFile(0) ;Die Datei schliessen
EndIf
Schau dir die Dokumentation zu Base64Encode an und dann versuch den Code
zu verstehen. Bei Fragen einfach fragen... :allright:

Verfasst: 04.05.2009 20:46
von Sauer-RAM
und was ist dieser buffer?

Verfasst: 04.05.2009 20:46
von milan1612
Sauer-RAM hat geschrieben:und was ist dieser buffer?
Hab gerade den Code kommentiert...

Verfasst: 04.05.2009 20:48
von Sauer-RAM
ahh danke

Verfasst: 04.05.2009 20:49
von Sauer-RAM
wenn ich das Programm laufen lasse kommt bei mir irgendein errror

Verfasst: 04.05.2009 20:50
von milan1612
Sauer-RAM hat geschrieben:wenn ich das Programm laufen lasse kommt bei mir irgendein errror
"Irgendein Error" hilft ungemein beim Debuggen :lol:

EDIT:
Ich hab das Ganze mal in eine Procedure gepackt, so ists leichter zu verwenden...

Code: Alles auswählen

Procedure Base64EncodeFile(File$)
  If FileSize(File$) < 0
    ProcedureReturn 0
  EndIf
  Protected File = OpenFile(#PB_Any, File$)
  Protected *InputBuffer, *OutputBuffer
  Protected FileLength, OutputLength

  If Not File
    ProcedureReturn 0
  EndIf

  FileLength = Lof(File)
  *InputBuffer = AllocateMemory(FileLength)

  ReadData(File, *InputBuffer, FileLength)

  OutputLength = FileLength * 1.35
  *OutputBuffer = AllocateMemory(OutputLength)

  OutputLength = Base64Encoder(*InputBuffer, FileLength, *OutputBuffer, OutputLength)
  
  ReAllocateMemory(*OutputBuffer, OutputLength)
  
  FileSeek(File, 0)
  
  WriteData(File, *OutputBuffer, OutputLength)
  
  FreeMemory(*InputBuffer)
  FreeMemory(*OutputBuffer)
  
  CloseFile(File)
  
  ProcedureReturn 1
EndProcedure

Base64EncodeFile("c:\text.txt")

Verfasst: 04.05.2009 21:04
von Sauer-RAM
Purebasic_Compilation5.exe hat ein Problem festgestellt und muss beendet werden.

steht da
und das wenn ich meine arbeit nicht beendet habe, sie verloren ist[/img]

Verfasst: 04.05.2009 21:07
von DrNo
Sauer-RAM hat geschrieben:wenn ich das Programm laufen lasse kommt bei mir irgendein errror
Du musst erst was in die Test.exe auf C:\ was reinschreiben :wink:


Und wie entschlüssle ich das wieder, wenn ich mal so spontan Fragen darf?