Base64encoder

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Sauer-RAM
Beiträge: 326
Registriert: 13.04.2009 16:22
Computerausstattung: Lenovo ThinkPad X230t Convertible
Wohnort: Haslach i. K.

Base64encoder

Beitrag 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
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Base64encoder

Beitrag 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
a²+b²=mc²
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag 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:
Zuletzt geändert von milan1612 am 04.05.2009 20:46, insgesamt 1-mal geändert.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
Sauer-RAM
Beiträge: 326
Registriert: 13.04.2009 16:22
Computerausstattung: Lenovo ThinkPad X230t Convertible
Wohnort: Haslach i. K.

Beitrag von Sauer-RAM »

und was ist dieser buffer?
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Sauer-RAM hat geschrieben:und was ist dieser buffer?
Hab gerade den Code kommentiert...
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
Sauer-RAM
Beiträge: 326
Registriert: 13.04.2009 16:22
Computerausstattung: Lenovo ThinkPad X230t Convertible
Wohnort: Haslach i. K.

Beitrag von Sauer-RAM »

ahh danke
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Benutzeravatar
Sauer-RAM
Beiträge: 326
Registriert: 13.04.2009 16:22
Computerausstattung: Lenovo ThinkPad X230t Convertible
Wohnort: Haslach i. K.

Beitrag von Sauer-RAM »

wenn ich das Programm laufen lasse kommt bei mir irgendein errror
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag 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")
Zuletzt geändert von milan1612 am 04.05.2009 21:19, insgesamt 2-mal geändert.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
Sauer-RAM
Beiträge: 326
Registriert: 13.04.2009 16:22
Computerausstattung: Lenovo ThinkPad X230t Convertible
Wohnort: Haslach i. K.

Beitrag 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]
"Bildung kommt vom Bildschirm und nicht vom Buch, sonst hieße es ja Buchung."
Dieter Hildebrandt
"Bildung ist Das, was übrig bleibt, wenn man alles was man in der Schule gelernt hat, vergisst. "
Albert Einstein
Benutzeravatar
DrNo
Beiträge: 202
Registriert: 09.05.2008 15:20
Wohnort: BW, Deutschland
Kontaktdaten:

Beitrag 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?
Antworten