Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?
05.08.2021, 07:24:08

.
Einloggen mit Benutzername, Passwort und Sitzungslänge

Mitglieder
  • Mitglieder insgesamt: 25805
  • Letzte: antaresc
Statistiken
  • Beiträge insgesamt: 748239
  • Themen insgesamt: 60197
  • Heute online: 412
  • Am meisten online: 2287
  • (22.01.2020, 19:20:24)
Benutzer Online
Mitglieder: 5
Gäste: 291
Gesamt: 296

Autor Thema: [erledigt] Base64: Ungültige Eingabe  (Gelesen 469 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

[erledigt] Base64: Ungültige Eingabe
« am: 02.01.2021, 09:57:48 »
Linux Mint 20 Cinnamon 64-Bit

Moin,
bei folgender Zeile
base64 -d letter_5.eml > originalData.txt und auch mit
base64 --decode letter_5.eml > originalData.txtbekomme ich die Meldung:
Zitat
Base64: Ungültige Eingabe
Die Datei "originalData.txt" wird zwar erzeugt, enthält aber nur einen Buchstaben.
Das Verrückte ist, dass es gestern erst funktioniert hat und dann plötzlich nicht mehr.
Und ich komme nicht dahinter, was plötzlich falsch ist.

Die Test-Quelldateien sind seit gestern morgen immer die gleichen - nur das Ergebnis ist plötzlich ein anderes.
Ich habe auch geschaut, ob ich überhaupt Rechte an den Dateien habe - habe ich.

Was übersehen ich?

Gruß Heiko
« Letzte Änderung: 03.01.2021, 11:10:09 von Lazman »

Re: Base64: Ungültige Eingabe
« Antwort #1 am: 02.01.2021, 11:15:55 »
Enthält letter_5.eml denn den ordnungsgemäß encodierten base64-String, den du mit dem -d wieder decodieren möchtest?

Re: Base64: Ungültige Eingabe
« Antwort #2 am: 02.01.2021, 11:20:40 »
Moin,

eigentlich ja, da ich ihn gestern morgen noch decodieren konnte.

To: xxx@yyy.de
Subject: Anfrage vom Kontaktformular
X-PHP-Originating-Script: 1000:kontakt.php
From: xxx@yyy.de
Reply-To:aaa@bbb.cc
Content-type: text/plain; charset=UTF-8
MIME-Version: 1.0
Content-Transfer-Encoding: BASE64

TW9pbiwgDQoNCnhjdnhjdnhjdiB4Y3Z4Y3Z4YyBtw7ZjaHRlIGZvbGdlbmRlcyB3aXNzZW4vZnJh
Z2VuL21pdHRlaWxlbjoNCg0Kc2Rma2pkamRoDQoNCkFudHdvcnQgYml0dGUgYW46IHhtYXMyMDIw
QHJvbXBlbC5jYw0KQW50d29ydCBhdWYgU2ljaGVyaGVpdHNmcmFnZTog

Re: Base64: Ungültige Eingabe
« Antwort #3 am: 02.01.2021, 11:26:19 »
Du solltest evtl. noch ein "-i" benutzen, damit der Header ignoriert wird. Die Header-Zeilen sind ja kein Base64.
base64 -d -i letter_5.eml > lesbar.txt
Gruß
Whitie

Re: Base64: Ungültige Eingabe
« Antwort #4 am: 02.01.2021, 11:36:31 »
eigentlich ja, da ich ihn gestern morgen noch decodieren konnte
Dieser Inhalt wurde so aber nicht mit base64 encodiert, denn dann würdest du den Header nicht in entschlüsselter Form lesen können. Ich vermute mal, dass bei dieser Form der Encodierung auch die Option -i nicht viel helfen wird.

Re: Base64: Ungültige Eingabe
« Antwort #5 am: 02.01.2021, 11:37:59 »
Moin,
Du solltest evtl. noch ein "-i" benutzen, damit der Header ignoriert wird. Die Header-Zeilen sind ja kein Base64.
base64 -d -i letter_5.eml > lesbar.txt
Gleiche Fehlermeldung und die "lesbar.txt" ist voller Steuerzeichen.

Irgendwas spinnt hier.
Ich fahre mal alle runter und probiere es dann noch mal.

Gruß Heiko

Re: Base64: Ungültige Eingabe
« Antwort #6 am: 02.01.2021, 11:44:15 »
Moin,

Dieser Inhalt wurde so aber nicht mit base64 encodiert, denn dann würdest du den Header nicht in entschlüsselter Form lesen können. Ich vermute mal, dass bei dieser Form der Encodierung auch die Option -i nicht viel helfen wird.
Das was ich hier gepostet habe, ist das was man in einem normalen Editor angezeigt bekommt, wenn man die eml-Datei öffnet.
In Thunderbird z.B. wird nur der decodierte Text angezeigt - siehe Bild.

Gruß Heiko

Re: Base64: Ungültige Eingabe
« Antwort #7 am: 02.01.2021, 12:45:19 »
Moin,

ich habe das System neu gestartet und die History gelöscht.
Gebe ich das Beispiel von der Seite https://www.base64decode.net/linux-base64-decode im Terminal ein
https://www.base64decode.net/linux-base64-decodebekomme ich richtig
Zitat
linux base64 decode

ausgegeben.
Das bedeutet, irgendetwas sorgt dafür, dass die Quelldateien irgendwelche Informationen enthalten, die der Decoder nicht bearbeiten kann.
Die eml-Dateien kommen von einem PHP-Script das in einer XAMPP-Umgebung läuft.
Da ich das Script definitiv gestern nicht verändert habe, kommt nur noch die php.ini als Ursache in Frage.
Aber, was soll den Fehler verursachen?
Zitat
: ###################################################################################################
[mail function]
; For Win32 only.
; http://php.net/smtp
; http://php.net/smtp-port

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com
;sendmail_from = postmaster@localhost

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = /opt/lampp/htdocs/sendmail/fake_sendmail.sh -t -i
;sendmail_path = /usr/sbin/sendmail -t -i

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
;mail.add_x_header=On

; Log all mail() calls including the full path of the script, line #, to address and headers
mail.log = /opt/lampp/htdocs/sendmail.log
: ###################################################################################################

Und das Script fake_sendmail.sh habe ich gestern auch nicht angefasst.

Übergebe ich obiger Seite den codierten Teil, wird dieser Richtig decodiert.
Übergebe ich die ganze eml-Datei, sind in Ihr oben viele Steuerzeichen und unten der richtige, decodierte Text.
Das gleiche passiert, wenn ich die eml-Datei mit einem Editor öffne und den Inhalt an obige Seite übergebe.

Was verursacht also die Ausgabe
Zitat
base64: ungültige Eingabe
?
Irgendetwas übersehe ich, aber was?

Gruß Heiko

Re: Base64: Ungültige Eingabe
« Antwort #8 am: 02.01.2021, 21:47:01 »
Also ich wüsste nicht, dass base64 sowas jemals verarbeitet hat. Das ist eine korrekte Email mit Header und Mailbody. Da die beiden immer durch eine Leerzeile getrennt sind, würde ich folgendes vorschlagen:
sed '1,/^$/d' letter_5.eml | base64 -d
Gruß
Whitie

Re: Base64: Ungültige Eingabe
« Antwort #9 am: 03.01.2021, 11:14:45 »
Moin,

ich habe das Thema auf "erledigt" gesetzt, weil mein ganzes Problem einen ganz anderen Ursprung hatte.
Ich habe immer versucht den BASE64 encodeten Teil zu decodieren, aber wenn ich im Formular anstatt mb_send_mail nur mail nutze,
dann werden auch nur einfache Textnachrichten ohne BASE64 verschickt und damit hat sich das Problem erledigt.

Danke, für Eure Hilfe.

Gruß Heiko