openssl und url

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • openssl und url

    Hallo zusammen,

    ich komme bei folgendem Szenario nicht weiter:

    Ich möchte auf Seite 1 einen String x per openSSL verschlüsseln.
    Klappt.

    Entschlüssel ich diesen String auf der gleichen Seite, erhalte ich wie gewünscht den String zurück.

    Gebe ich nun den verschlüsselten Wert von Seite 1 an Seite 2 weiter (per GET über die URL), lässt sich der verschlüsselte String auf Seite 2 leider nicht mehr entschlüsseln und ich erhalte entsprechende Fehlermeldungen, z.B.

    error:0406506C:rsa routines:RSA_EAY_PRIVATE_DECRYPT:data greater than mod len

    error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02

    error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPTadding check failed

    Bei meiner Recherche habe ich dann auf diversen Seiten den Hinweis gefunden, man solle den Wert, der übergeben werden soll, base64 encodieren und auf der anderen Seite dann wieder decodieren.

    Leider erhalten ich dann eine der oben genannten Fehlermeldungen.

    Ich habe dann versucht, den String per urlencode / decode zu übertragen, aber selbiges Spiel.

    Gehe ich Recht der Annahme, dass das an der Codierung der per URL übermittelten Daten liegt?

    Mich irritiert, dass Ver- und Entschlüsselung funktionieren, wenn die Daten in der gleichen Datei verarbeitet werden, aber nicht, wenn dies von zwei Dateien gemacht wird (wobei beide im gleichen Verzeichnis liegen und auch die Pfade zu den private und public Keys gleich und vor allem korrekt sind.

    Viele Grüße im Voraus und Danke fürs Lesen

    Boris

  • #2
    Kommando zurück.

    Die Lösung war schlicht, beides zu verwenden.

    Auf dem "Hinweg":
    Code:
    $base_64_ssl = rawurlencode(base64_encode($crypttext));
    Auf dem "Rückweg":
    Code:
    $base_64_ssl = rawurldecode(base64_decode($crypttext));

    Kommentar


    • #3
      Hallo zusammen,

      scheinbar ist das Thema doch noch nicht ganz gegessen.

      Besteht die übertragene Zeichenkette nur aus Kleinbuchstaben, Großbuchstaben und Ziffern, klappt das Vorhaben ohne Probleme.

      Befinden sich im String jedoch Sonderzeichen wie das Pluszeichen oder ein Slash, schlägt die Entschlüsselung fehl.

      Schaue ich mir aber den übertragenen und den empfangenen String an, so sind diese inhaltlich identisch.

      Ich habe nun versucht, auf der übertragenen Seite mit urlencode/rawurlencode sowie auf der empfangenen Seite mit urldecode/rawurldecode zu arbeiten, aber am Ergebnis ändert sich leider nichts.

      Kommentar

      Lädt...
      X