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...

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
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
Und wie entschlüssle ich das wieder, wenn ich mal so spontan Fragen darf?