Hallo, ich steh vor dem Problem AUSSCHLIESSLICH mit Win10Prof. Bordmitteln eine Textdatei mit der POST-METHODE via HTTP an eine Adresse http://138.68.xxx.xxx/upload zusenden und dabei die Datei BASE64 zu verschlüsseln. Wie krieg ich das hin ? Ggf. mit ner Zusatzsoftware, wenn es NICHT anders geht. FTP oder andere Protokolle scheiden aus, weil der Server (Empfänger) nur HTTP mit POST-METHODE unterstützt. Danke für Eure Ideen sagt Ralph
Der Windows Scripting Host müsste per default installiert sein (wscript.exe / cscript.exe). Damit könnte man das in JScript (JavaScript Variante von M$) erledigen. Ansonsten: Internet Explorer, ebenfalls via JavaScript, aber !fun.
Base64 ist keine Verschlüsselung, sondern eine Kodierung. Das zu "entschlüsseln" ist trivial, also nicht im Geringsten sicher.
Ralph H. schrieb: > Hallo, > > ich steh vor dem Problem AUSSCHLIESSLICH mit Win10Prof. Bordmitteln eine > Textdatei mit der POST-METHODE via HTTP an eine Adresse > http://138.68.xxx.xxx/upload zusenden und dabei die Datei BASE64 zu > verschlüsseln. base64 ist KEINE Verschlüsselung sondern eine einfache Kodierung! Die Daten sind immer noch "plain text" und für jeden lesbar. Zum Rest ($Suchmaschine kaputt?): certutil + curl oder wget https://stackoverflow.com/a/16946681 Alternativ base64 in die Firefox developer tools kopieren und den Request per Hand bauen...
Suchbegriffe: wscript http post: https://duckduckgo.com/?q=wscript+http+post&t=hk&ia=web Fange am besten mit dem Stackoverflow-Beitrag an: http://stackoverflow.com/questions/5907089/ddg#5907741
Danke für die Links erstmal ! Ich versuche mich da mal reinzulesen, habe mich aber noch nie damit beschäftigt. Vielleicht gibt es ja einen Profi hier, der so ein einfaches Grundgerüst schon parat hätte, was ich mir anpassen kann?! Das wäre toll. Danke Euch ! PS: ich hab zwar den Nick "Guru" grins.. aber hier bin ich der Dummy. :-(
Powershell (Windows Bordmittel): Zum Kodieren aus der Powershell eine .NET-Funktion (auch Windows Bordmittel) aufrufen
1 | [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("<original string>")) |
Zum Senden in der Powershell Invoke-WebRequest oder das alias-Kommando curl aufrufen (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-7)
Männer, vielen Dank für Eure Ideen. Ich habe mir das gestern abend mal versucht reinzuziehen und bin immer gescheitert. Vielleicht kann mir jemand die Problemlösung schreiben? gern auch gegen ein vertretbares Entgeld. Problemstellung hier: Eine Textdatei Namens "Aufträge.txt" liegt im Ordner "D:\App" und soll via HTTP mit der POST METHODE an die Adresse http://138.68.xxx.xxx/upload in BASE64 codiert gesendet werden. Die genaue IP Adresse würde ich via PN kunddtun, um das ggf. zu testen. Vielen Dank !
Ein aktuelles Windows 10 hat curl schon dabei, ansonsten: https://curl.haxx.se/windows/ Und dann auf der Kommadozeile:
1 | curl -X POST --data-binary @D:\App\Aufträge.txt http://138.68.xxx.xxx/upload |
Oder eben, wenn es an ein Formular gesendet werden soll:
1 | curl -F ‘data=@D:\App\Aufträge.txt’ http://138.68.xxx.xxx/upload |
Ralph H. schrieb: > Vielleicht kann mir jemand die Problemlösung schreiben? gern auch gegen > ein vertretbares Entgeld. Spende dafür 50,- € an eine Tierschutz-Organisation Deiner Wahl.
@Bastler Danke Dir! Genau diese Zeile hatte ich mir gestern abend auch schon zusammengepuzzelt. Leider kommt das die Fehlermeldung "502 Bad Gateway" Kann natürlich sein, das der Server nur diese Meldung zurückgibt, obwohl das File da ist. Das kläre ich mal. LG Ralph
Beitrag #6325681 wurde vom Autor gelöscht.
Ralph H. schrieb: > Leider kommt das die Fehlermeldung "502 Bad Gateway" Kann es sein, dass der Server einen File-Upload (multipart/form-data statt urlencoded) erwartet? Dann klappt das so nicht. Kannst du die Datei per Webbrowser hochladen? Wenn ja: Mach nebenbei die Entwickler-Tools auf, schau dort im Netzwerk-Tab nach deinem POST. Rechtsklick, "Copy as cURL". Schon hast du eine passende Kommandozeile im Clipboard. Da kann man dann vieles rausschmeißen (Cookies, User-Agent, ...), aber die interessanten Optionen sollten erkennbar sein. Das dann anpassen, Datei wie im Beitrag von Bastler oben dynamisch einsetzen.
Εrnst B. schrieb: > Kann es sein, dass der Server einen File-Upload (multipart/form-data > statt urlencoded) erwartet? Das würde ich auch tippen.
Ralph H. schrieb: > ich steh vor dem Problem AUSSCHLIESSLICH mit Win10Prof. Bordmitteln eine > Textdatei mit der POST-METHODE via HTTP an eine Adresse > http://138.68.xxx.xxx/upload zusenden und dabei die Datei BASE64 zu > verschlüsseln. Mit der PowerShell müsste das gehen.
base64 ist so einfach das man das auch mit Hilfe von shell Scripten erledigen kann. Es kommt darauf an ob man es auch wirklich umwandeln muss oder es schlicht einfach binär versendet. "Kann es sein, dass der Server einen File-Upload (multipart/form-data statt urlencoded) erwartet? Dann klappt das so nicht." Oder ob diese Auftragsdatei an sich Usus ist da man das Prinzip von REST noch nicht verstanden hat und das was da drin steht anhand der URI oder als Formular auch auflösen könnte...
Mal was zu Base64: Hier wurde mehrfach "mangelnde Sicherheit" bemängelt. Darum geht es auch garnicht. Base64 dient dazu, eigentlich binären Code (also alle Bytes von 0 bis 255), der bei bestimmten Transportmehtoden als Steuersequenz "missverstanden" werden kann, in den "harmlosen" Bereich der ASCII-Codierung zu überführen, also nur "sichtbare Zeichen" ohne jede Nebenwirkung. Zur Kodierung werden ausschließlich die Zeichen A–Z, a–z, 0–9, + und / verwendet sowie = bei Bedarf am Ende zum "Auffüllen" einer Sequenz. Base64 ist verslustlos und 100% transparent.
:
Bearbeitet durch User
Korrekt, es sorgt dafür daß keine Zeichen verwendet werden die nicht angezeigt werden können oder dir das Dokument zerstört. Wenn man binäre Daten in ein JSON Objekt anhängen will etc.... Bei HTTP sorgt dafür daß es das Formular mit den Parameter im Body nicht zerstört... Der bei dieser Methode die Parameter mit & im body getrennt werden.
:
Bearbeitet durch User
Grundfrage: Warum soll eigentliche base64 verwendet werden? Das braucht man beim POST-Request nicht, da können direkt Binärdaten bzw. vollständige 8-Bit-Daten oder wie auch immer man das nennen will gesendet werden.
Ben B. schrieb: > Grundfrage: > Warum soll eigentliche base64 verwendet werden? Das braucht man beim > POST-Request nicht, da können direkt Binärdaten bzw. vollständige > 8-Bit-Daten oder wie auch immer man das nennen will gesendet werden. JSON Objekte...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.