Bonjour à tous,
Je bute sur un truc qui me paraissait simple au départ et qui finalement ne fonctionne pas.
J'ai généré un couple de clés publique-privée avec mkjwk.org.
Je voudrais maintenant extraire la clé publique et la clé privé pour encrypter/décrypter.
En parcourant les docs php (je suis en PHP8.2 sous Xampp/Windows), j'ai trouvé qu'on pouvait utiliser openssl_get_publickey en lui fournissant une clé publique au format PEM.
J'ai aussi trouvé qu'il fallait découper en lignes de 64 caractères.
J'ai essayé avec et sans le str_replace. L'erreur est la même : "error:04800064EM routines::bad base64 decode"
Avec le str_replace la fonction base64_decode fonctionne.
Malgré tout je reste avec mon erreur error:04800064EM routines::bad base64 decode
J'ai le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 var_dump(base64_decode($publicKey, true)) ; // KO $str = str_replace(['-', '_', ''], ['+', '/', '='], $publicKey) ; var_dump(base64_decode($str, true) ) ; // OK echo "\n" ; $str = chunk_split($str, 64, "\n"); var_dump($str) ; var_dump(base64_decode($str, true) ) ; // OK $key = "-----BEGIN PUBLIC KEY-----\n".$str."-----END PUBLIC KEY----\n"; var_dump($key) ; var_dump (openssl_get_publickey($key)); // KO var_dump(openssl_error_string());
Si quelqu'un a des idées!
Merci d'avance et bonne journée! (bonne reprise à ceux qui rentrent de congés!)
Partager