openssl_pkey_get_public nicht öffentlichen Schlüssel, "no start line" - Fehler
Beim generieren öffentlichen Schlüssel und dann Lesen Sie mit der Funktion openssl_pkey_get_public - $publicKeyResource = bool(false) Meldung:
Fehler:0906D06C:PEM routines:PEM_read_bio:no start line
$privateKey = openssl_pkey_new(array('private_key_bits' => 2048, 'private_key_type' => OPENSSL_KEYTYPE_RSA));
$keyDetails = openssl_pkey_get_details($privateKey);
$publicKeyResource = openssl_pkey_get_public($keyDetails['key']);
Was ist falsch?
P. S.
privateKey =
array(3) {
["bits"]=>int(2048)
["key"]=>
string(451) "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApo5lpSuSQmAOXfqAmexj
IzjdGnd1X1gCKj5ko2DHgcR4XBlj1hbFNs1pzXx+R/UvLXTeF7dNQ+9AgXjEeRa6
71VbNxrUgvb/PHjEANwce7xBsnbu+dcSazyNHzx4ahWyEF4f3HyaJkGrT/Dgzcut
DO+yFAH9u8Hx26cj/8kyrtIHxazemnD+IDHRa3zOjKDmTfoDRKtOMTPVgFAsYBXn
tKcLyamCSBgpwfQwKfUUcYhfY1xD9UMhVXabSSiNQOiTMuOIZUHueO8UCp/tdK6a
LprUDBQ/tVmiV7ZMeZYMjh6XnK7higJ3WZp8RmD4PPeKbtG6j2AuGpbF/ddzD62T
XwIDAQAB
-----END PUBLIC KEY-----
"
["type"]=>
int(0)
}
Sind Sie sicher, dass ----BEGIN...--- und ----END...--- sind Bestandteil der PEM-format?
Ja. 1) Dieser code generiert openssl_pkey_new für die openssl-Bibliothek verwenden. 2) dev.modmancer.com/index.php/2010/07/07/...
Das ist genau die gleiche Frage stellte ich vor einigen Tagen: stackoverflow.com/questions/3598044/... wollen immer Noch, die Lösung zu wissen...
Ja. 1) Dieser code generiert openssl_pkey_new für die openssl-Bibliothek verwenden. 2) dev.modmancer.com/index.php/2010/07/07/...
Das ist genau die gleiche Frage stellte ich vor einigen Tagen: stackoverflow.com/questions/3598044/... wollen immer Noch, die Lösung zu wissen...
InformationsquelleAutor slamer | 2010-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie vielleicht eine einfachere Zeit mit phpseclib ist Crypt_RSA. zB.
createKey(2048));
echo $publickey;
?>
Mehr info:
http://phpseclib.sourceforge.net/
InformationsquelleAutor
Gleiche Antwort wie ich gegeben in PHP + OpenSSL : Fehler zurückgegeben, aber richtige Ergebnis:
Dies wird offenbar verursacht durch openssl_pkey_get_public() will sich ein Zertifikat mit Ihrem öffentlichen Schlüssel und nicht den öffentlichen Schlüssel von selbst – es scheint, laden Sie den public-key, aber immer noch diesen Fehler verursacht. Details siehe dort.
InformationsquelleAutor Archimedix
Wahrscheinlich PHP-openSSL-lehnt-Schlüssel im PEM-form. Versuchen RSA form statt
InformationsquelleAutor Sidora Gleb
Grund:
Dieser Fehler ist in der Regel verursacht durch eine korrupte Zeichen am Anfang der .crt-Datei. Also, die Chancen sind, dass Sie einen zusätzlichen Raum, ein zusätzliches Zeichen, um eine extra Zeile, etc. entweder in die SSL-Zertifikat-Datei (.crt) oder der SSL-Schlüssel.
InformationsquelleAutor shamittomar
Ich vermute das es ein bug in irgendeiner version von PHP, OpenSSL, weil Ihre geposteten code funktioniert gut für mich (mit PHP 5.2.6 und OpenSSL 0.9.8 g).
Neueste php_openssl gibt das gleiche Ergebnis. Sie können nicht sehen, einen Fehler, wenn Sie nicht die überprüfung für Sie. print(openssl_error_string()."<br/>");
Nope, definitiv kein Fehler.
$publicKeyResource
endet mit einem gültigen öffentlichen Schlüssel der Ressource, und es gibt keine OpenSSL-Fehler gesetzt. Ich dachte eigentlich, dass der bug könnte etwas gewesen eingeführt in neuer - version (entweder PHP oder OpenSSL), da meins ist nicht besonders neu.Umgeschichtet alles mit den aktuellen Versionen von PHP, OpenSSL. Gleichen Fehler. Versucht zu generieren, den öffentlichen Schlüssel aus dem arbeiten heraus private nur vor der Prüfung, immer noch dasselbe Ergebnis...
Ich würde versuchen, die ältere - Versionen, da könnte es gut sein, eine regression. Als ein anderer Gedanke, könnte es sein, ein Zeichensatz-Problem irgendeiner Art? Verwenden Sie jede Art von Lokalisierung?
InformationsquelleAutor caf