Ankündigung

Einklappen
Keine Ankündigung bisher.

Open_ssl in PHP

Einklappen

Neue Werbung 2019

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

  • Open_ssl in PHP

    Hallo allerseits,

    Wenn ich auf folgende Weise ein Schlüsselpaar erzeuge und dieses dann zum Ent- und Verschlüsseln benutze, dann funktioniert alles:

    // Create the keypair
    $res=openssl_pkey_new();

    // Get private key
    openssl_pkey_export($res, $private_key);

    // Get public key
    $pubkey=openssl_pkey_get_details($res);
    $public_key=$pubkey["key"];

    In den Variablen "$private_key" und "$public_key" habe ich die entsprechenden Schlüssel und wenn ich die mit "echo" ausgebe, dann kriege ich sowas, was ja auch erstmal richtig aussieht:

    -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEF.... cwIDAQAB -----END PUBLIC KEY-----
    -----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0B....Eat5Bl9vbfp5tlRb5 -----END PRIVATE KEY-----

    Wenn ich jetzt aber die Keys in den Variablen "$private_key" und "$public_key" nicht neu erzeuge sondern mit den vorher ausgegebenen Strings belege

    $private_key = "-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEF.... cwIDAQAB -----END PUBLIC KEY-----";
    $public_key = "-----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0B....Eat5Bl9vbfp5tlRb5 -----END PRIVATE KEY----- ";

    dannn kriege ich diese beiden Fehler:
    "Warning: openssl_public_encrypt(): key parameter is not a valid public key in /www/htdocs/v125289/rsatest.php on line 5"
    und
    "Warning: openssl_private_decrypt(): key parameter is not a valid private key in /www/htdocs/v125289/rsatest.php on line 11"

    Was mache ich falsch, bzw. habe ich hier einen Denkfehler?

    Zum Ver- und Entschlüsseln verwende ich einfach diese beiden Methoden, die wie gesagt bei einem neu erzeugten Schlüsselpaar auch funktionieren:

    function public_encrypt($plaintext, $public_key)
    {
    openssl_public_encrypt($plaintext,$crypttext, $public_key);
    return(base64_encode($crypttext));
    }

    function private_decrypt($encryptedext,$private_key)
    {
    openssl_private_decrypt(base64_decode($encryptedex t), $decrypted, $private_key);
    return $decrypted;
    }

    Vielen Dank für Eure Hilfe.

  • #2
    wilkommen im forum!
    gutes neues jahr.
    bitte formatieren deinen code mit tags.

    die meldung besagt: key parameter is not a valid public key
    du brauchst eine ssl key resource, keinen key.


    http://php.net/manual/de/function.op...get-public.php

    Kommentar


    • #3
      Blöde Frage, aber hat man für sowas nicht einen Webserver?
      Fatal Error: Windows wird gestartet

      Wie administriert man ein Netzwerk: Beispiel

      Kommentar


      • #4
        Zitat von Unlikus Beitrag anzeigen
        Blöde Frage, aber hat man für sowas nicht einen Webserver?
        ich verstehe nicht ganz, was ein webserver mit dem verundentschlüsseln im allegemeinen zu tun hat.

        Kommentar


        • #5
          SSL kenne ich eigentlich nur in Verbindung mit https und da hat php doch erst mal nichts mit zu tun, sondern der Webserver. Und auch sonst fällt mir wenig Anwendung für manuell generierte Schlüssel in php ein.
          Fatal Error: Windows wird gestartet

          Wie administriert man ein Netzwerk: Beispiel

          Kommentar


          • #6
            //OT:
            auch da kann es sinn machen certificate und auch schlüssel manuell zu generieren, aber spass beiseite :

            die üblichen verdächtigen (pop/imap/smtp/sip/dns/vpn/ etc.) können auch mit ssl certificaten spielen.

            Kommentar


            • #7
              Fragen wir andersrum: was hat asymmetrische Verschlüsselung per se mit SSL zu tun?
              Nur weil die Methoden über die OpenSSL-Lib laufen heißt das nicht, dass da SSL im Spiel ist.
              Wenn dir keine Anwendungsbeispiele einfallen hast du aber sehr wenig Vorstellungskraft.
              Einfachstes Beispiel: Nachricht von A nach B senden, ohne dass sie ein Dritter lesen kann - also müssen A und B wohl oder Übel verschlüsselt kommunizieren.
              VokeIT GmbH & Co. KG - VokeIT-oss @ github

              Kommentar

              Lädt...
              X