Base64

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

timmeTheOnly

Betreff: Base64

BeitragSa, Okt 28, 2006 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leutz,

bin am verzweifeln, ich finde nix in der forensuche und kann den algorhytmus nicht aus javascript übersetzen, nebenbei ist auf plasmas download weg. nun zu meiner frage: weiß einer wie ich einen base64-encoder hinbekomme, er braucht auch nicht schnell zu sein, nur für den smtp loginprozess

mfg
t-master

Blitzcoder

Newsposter

BeitragSa, Okt 28, 2006 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe es jetzt nicht gelesen, aber hier könntest du etwas finden: http://www.sendmail.org/~ca/email/auth.html.

Such bei Google danach. Sogar Wikipedia hat für viele Algorythmen Codebeispiele.

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

timmeTheOnly

BeitragSa, Okt 28, 2006 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiß, aber ich brauchs dynamisch...

BtbN

BeitragSo, Okt 29, 2006 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Was meinst du mit Dynamisch?
Und:

Zitat:
Zur Kodierung werden jeweils drei Byte des Bytestroms (=24 bit) in vier 6-bit-Blöcke aufgeteilt. Jeder dieser 6-bit-Blöcke bildet eine Zahl zwischen 0 und 63. Diese Zahlen werden an Hand der nachfolgenden Umsetzungstabelle in „druckbare ASCII-Zeichen“ umgewandelt und ausgegeben. Der Name des Algorithmus erklärt sich durch eben diesen Umstand – jedem Zeichen des kodierten Datenstroms lässt sich eine Zahl zwischen 0 und 63 zuordnen (siehe Tabelle). Mathematisch betrachtet gleicht dies einem Stellenwertsystem der Basis 64. In der Regel wird spätestens nach jeweils 76 ausgegebenen Zeichen ein Zeilenumbruch eingefügt, welcher jedoch ansonsten für die Kodierung nicht von Belang ist.

Falls die Gesamtanzahl der Eingabebytes nicht durch drei teilbar ist, wird der zu kodierende Text am Ende mit Füllbytes aufgefüllt. Um dem Dekodierer mitzuteilen, wie viele Füllbytes angefügt wurden, werden die 6-Bit-Blöcke, die vollständig aus Füllbytes entstanden sind, mit = kodiert. Somit können am Ende einer Base64-kodierten Datei 0, 1 oder 2 =-Zeichen auftreten.


Quelle: http://de.wikipedia.org/wiki/Base64

Ich finde, daraus kann man recht schön eine Funktion bauen.
 

timmeTheOnly

BeitragSo, Okt 29, 2006 13:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß, aber ich werde daraus nicht schlau...

[edit]

Ich hab jetz ne Base64.dll im I-Net gefunden, hab eine Userlib geschreiben und jetzt sagt er: "Userlib not found"...

PlzHelp

PS:

die userlib:

Code: [AUSKLAPPEN]

.lib "Base64.dll"

EnCodeBase64$(sv$):"encode_base64"
DeCodeBase64$(sv$):"decode_base64"

BtbN

BeitragSo, Okt 29, 2006 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mich ma ran gesetzt, den WikiPedia-Artikel in ein paar Funktionen umzusetzen, allerdings für BMax. Vieleicht kannst du trotzdem was mit anfangen oder es kann dir wer umschreiben: https://www.blitzforum.de/foru...p?p=214270
 

timmeTheOnly

BeitragSo, Okt 29, 2006 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, leider kann ich damit nichts anfangen, da es in bb kein tstream gibt

FOODy

BeitragSo, Okt 29, 2006 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Typ nicht aber Streams gibst schon:
http://blitzbase.de/befehle2d/readfile.htm
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
 

timmeTheOnly

BeitragSo, Okt 29, 2006 15:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ja schon, aber ich versuchs grade zu übersetzten *andenkopflangvorschwierigkeit*+

[edit]

Fertisch, aber der gibt nur As und am ende = aus...

PowerProgrammer

BeitragSo, Okt 29, 2006 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function Base64enc$(a$)
   b64$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
   m$=""
   f$=""
   largo=Len(a$)
;Encode a$ into one long string of bits
   cx$=""
   For encode=1 To largo
      x$=Mid$(a$,encode,1)  ;get one char at a time
      Tx=Asc(x$)            ;Tx = ASCII code
      b$=Bin$(Tx)           ;convert Tx into string of 32 bits
      b$=Right$(b$,8)       ;get the right most 8 bits out of the 32 bits
      cx$=cx$+b$            ;add string of 8 bits to cx$
   Next
   ;largo = number of bits stored in cx$
   largo=Len(cx$)
   For encode=1 To largo Step 6
      x$=Mid$(cx$,encode,6)   
      bbb=Len(x$)
      bbbx=6-bbb       ;check for 6 bits
         ;If not full 6 bits at end of bit string, then add "=" to end of encoded string
         If bbbx>0 Then
            f$="="
         EndIf
      x$=x$ + Left$("00000000",bbbx)         ;pad with zeroes to make 6 bits
      res=0
      For y=0 To 5
         by  = Asc(Mid$(x$, 6-y, 1)) - 48   ;get bits from right to left (least significant to most)
         res = res + ( 2^y * by)            ;raise to power of 2 and add to res (result)
      Next
      m$=m$+Mid$(b64$,res+1,1)+f$
   Next
   Return m$
End Function

Function Base64dec$(a$)
   b64$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
   m$=""
   f$=""
   length = Len(a$)
   cx$ = ""
   If Right$(a$,1) = "=" Then length = length - 2: flag = 1
   
   For decode = 1 To length
      x$ = Mid$(a$,decode,1)
      pos = Instr(b64$,x$)-1
      b$ = Bin$(pos)
      b$ = Right$(b$,6)
      cx$ = cx$ + b$
   Next

   If flag = 1 Then
      numBits = 6 * (Len(a$)-2)
      rmdr = (Floor(numBits/8)+1)*8-numBits
      oddChar$ = Mid$(a$,Len(a$)-1,1)
      pos =Instr(b64$, oddChar$)-1
      b$ = Right$(Bin$(pos),6)
      b$ = Left$(b$,rmdr)
      cx$ = cx$ + b$
   End If
   
   length = Len(cx$)

   For decode = 1 To length Step 8
      b$ = Mid$(cx$,decode,8)
      res = 0
      For y = 0 To 7
         bit =Asc( Mid$(b$,8-y,1)) - 48
         If bit <> 0 Then
            res = res Or (2^y * bit)
         End If
      Next
      m$ = m$ + Chr$(res)
   Next
   Return m$
End Function

www.blitzbasic.com rulez!
www.xairro.com Alles für Webmaster und Programmierer! Es gibt mehr als bloß einen Counter!
 

timmeTheOnly

BeitragSo, Okt 29, 2006 18:39
Antworten mit Zitat
Benutzer-Profile anzeigen
thx man

Trust

BeitragDo, Mai 20, 2010 2:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey,

ich weiß dieser Threat ist schon ewig her aber ich habe mal versucht
mit deiner(PowerProgrammer) Base64enc$ Function eine Bild-Datei zu encoden.
Aber ab dem 73. Zeichen ist es im hinblick zum MIME base64 (RFC 2045) encodeten String anders.

Ist deine Function nicht "stream-Tauglich" oder ist deine Base64enc$ function eine andere als MIME base64 (RFC 2045) ?

Zur Information über die verschiedenen Base64 Arten ist auf dieser Seite weiter unten eine schöne Tabelle : http://en.wikipedia.org/wiki/Base64

Vielen Dank

Trust

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group