Mailinglist Archive: opensuse-de (5264 mails)
| < Previous | Next > |
Re: base64 decodieren
- From: Eilert Brinkmann <eilert@xxxxxxxxxxxxxxxxxxxxxxxx>
- Date: 12 Jun 2001 23:57:03 +0200
- Message-id: <xttbsnt4b0w.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Andreas Meyer wrote:
> Date: Thu, Jan 01 1970 01:00:00 MET
Hoppla...
> Am Die, 12 Jun 2001 schrieb Juergen Schwarting:
> > uudecode erkennt automatisch welche Codierung vorliegt. Hier ein
> > kleines Beispiel:
> >
> > date >test.dat
> > uuencode -m test.dat test.dat >test.b64
> > rm test.dat
> > uudecode test.b64
>
> andreas@gamma:~ > date >test.dat uuencode -m test.dat test.dat >test.b64
Da hast Du den Zeilenumbruch nicht mitbekommen, der in Jürgens
Beispiel vor dem uuencode steht. Damit wird das uuencode samt allem
dahinter zu weiteren Argumenten des date-Kommandos, ...
> date: Ungültige Option -- »m«
> Mit `date --help' bekommen Sie mehr Informationen.
... und diese Meldung gibts, weil date damit natürlich nicht viel
anfangen kann.
> Es wird ein file namens testb64 angelegt, ist aber 0 byte groß.
Ein "Folgefehler": Die Ausgabeumleitung bezieht sich jetzt natürlich
nicht mehr auf das uuencode (das gibt's ja als eigenes Kommando gar
nicht mehr), sondern auf den date-Aufruf. Da der aber fehlschlägt
(s.o.), gibt's auch keine Ausgabe, die die Datei füllen könnte.
> Die Datei wird so eingeleitet:
>
> --Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD
> Content-Type: text/english;
> name="sendmail.cf"
> Content-Transfer-Encoding: base64
> Content-Disposition: attachment; filename="sendmail.cf"
Dann ist das also ein MIME-Attachment in einer Mail. Hinter diesem
Header sollte nach einer Leerzeile die base64-kodierte Datei kommen,
der wiederum eine Boundary-Zeile folgt, die mit der vor dem Header
identisch ist (evtl. noch mit "--" am Ende, falls das der letzte
MIME-Teil der Mail war).
Wenn Du nur diese eine Datei dekodieren willst, kannst Du Dir wie
folgt behelfen: Kopier den base64-kodierten Teil (ohne den Header) in
eine extra Datei und füge dort als erste Zeile "begin-base64"-Zeile
und als letzte Zeile "====" ein, wie es in dem Beispiel in Jürgens
Mail zu sehen ist. Dann sollte sich das mit uudecode dekodieren
lassen.
> > BTW. Wenn Du diese Mail durch uudecode schiebst, wird sich auf
> > wundersame Weise die Datei test.dat in Deinem Verzeichnis breit
> > machen ;-)
> >
> > Probiers aus...
> >
> > uudecode diesemail
>
> Die Jun 12 06:49:24 MEST 2001
>
> Tatsächlich, das funktioniert. Was passiert da?
Irgendwo in Jürgens Mail trifft uudecode auf folgende Zeile:
begin-base64 644 test.dat
Die bedeutet soviel wie: Hier beginnt die base64-kodierte Darstellung
einer Datei mit den Zugriffsrechten 644 (rw-r--r--) und dem Namen
"test.dat". Darauf folgt dann der eigentliche, base64-kodierte Inhalt
der Datei:
RGllIEp1biAxMiAwNjo0OToyNCBNRVNUIDIwMDEK
Das ist nichts weiter als die base64-kodierte Darstellung des Textes
mit der Datumsangabe. In diesem Fall reicht diese eine Zeile aus, aber
es können auch *viel* mehr sein. Damit man das Ende sicher erkennen
kann, folgt darauf eine Zeile mit einer Abschlußmarkierung:
====
Das alles findet uudecode also in seiner Eingabe, erkennt am richtigen
Format, daß es damit was anfangen kann, dekodiert den Dateiinhalt,
speichert ihn in einer Datei mit dem angegebenen Dateinamen und
verpaßt dieser Datei die angegebenen Rechte.
Eilert
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik
eilert@xxxxxxxxxxxxxxxxxxxxxxxx - eilert@xxxxxxx
http://www.informatik.uni-bremen.de/~eilert/
> Date: Thu, Jan 01 1970 01:00:00 MET
Hoppla...
> Am Die, 12 Jun 2001 schrieb Juergen Schwarting:
> > uudecode erkennt automatisch welche Codierung vorliegt. Hier ein
> > kleines Beispiel:
> >
> > date >test.dat
> > uuencode -m test.dat test.dat >test.b64
> > rm test.dat
> > uudecode test.b64
>
> andreas@gamma:~ > date >test.dat uuencode -m test.dat test.dat >test.b64
Da hast Du den Zeilenumbruch nicht mitbekommen, der in Jürgens
Beispiel vor dem uuencode steht. Damit wird das uuencode samt allem
dahinter zu weiteren Argumenten des date-Kommandos, ...
> date: Ungültige Option -- »m«
> Mit `date --help' bekommen Sie mehr Informationen.
... und diese Meldung gibts, weil date damit natürlich nicht viel
anfangen kann.
> Es wird ein file namens testb64 angelegt, ist aber 0 byte groß.
Ein "Folgefehler": Die Ausgabeumleitung bezieht sich jetzt natürlich
nicht mehr auf das uuencode (das gibt's ja als eigenes Kommando gar
nicht mehr), sondern auf den date-Aufruf. Da der aber fehlschlägt
(s.o.), gibt's auch keine Ausgabe, die die Datei füllen könnte.
> Die Datei wird so eingeleitet:
>
> --Boundary-=_nWlrBbmQBhCDarzOwKkYHIDdqSCD
> Content-Type: text/english;
> name="sendmail.cf"
> Content-Transfer-Encoding: base64
> Content-Disposition: attachment; filename="sendmail.cf"
Dann ist das also ein MIME-Attachment in einer Mail. Hinter diesem
Header sollte nach einer Leerzeile die base64-kodierte Datei kommen,
der wiederum eine Boundary-Zeile folgt, die mit der vor dem Header
identisch ist (evtl. noch mit "--" am Ende, falls das der letzte
MIME-Teil der Mail war).
Wenn Du nur diese eine Datei dekodieren willst, kannst Du Dir wie
folgt behelfen: Kopier den base64-kodierten Teil (ohne den Header) in
eine extra Datei und füge dort als erste Zeile "begin-base64"-Zeile
und als letzte Zeile "====" ein, wie es in dem Beispiel in Jürgens
Mail zu sehen ist. Dann sollte sich das mit uudecode dekodieren
lassen.
> > BTW. Wenn Du diese Mail durch uudecode schiebst, wird sich auf
> > wundersame Weise die Datei test.dat in Deinem Verzeichnis breit
> > machen ;-)
> >
> > Probiers aus...
> >
> > uudecode diesemail
>
> Die Jun 12 06:49:24 MEST 2001
>
> Tatsächlich, das funktioniert. Was passiert da?
Irgendwo in Jürgens Mail trifft uudecode auf folgende Zeile:
begin-base64 644 test.dat
Die bedeutet soviel wie: Hier beginnt die base64-kodierte Darstellung
einer Datei mit den Zugriffsrechten 644 (rw-r--r--) und dem Namen
"test.dat". Darauf folgt dann der eigentliche, base64-kodierte Inhalt
der Datei:
RGllIEp1biAxMiAwNjo0OToyNCBNRVNUIDIwMDEK
Das ist nichts weiter als die base64-kodierte Darstellung des Textes
mit der Datumsangabe. In diesem Fall reicht diese eine Zeile aus, aber
es können auch *viel* mehr sein. Damit man das Ende sicher erkennen
kann, folgt darauf eine Zeile mit einer Abschlußmarkierung:
====
Das alles findet uudecode also in seiner Eingabe, erkennt am richtigen
Format, daß es damit was anfangen kann, dekodiert den Dateiinhalt,
speichert ihn in einer Datei mit dem angegebenen Dateinamen und
verpaßt dieser Datei die angegebenen Rechte.
Eilert
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik
eilert@xxxxxxxxxxxxxxxxxxxxxxxx - eilert@xxxxxxx
http://www.informatik.uni-bremen.de/~eilert/
| < Previous | Next > |