Je le script php où le codage de mot de passe fait en utilisant le OpenSSL:Ruby équivalent pour la fonction php openssl_pkey_get_public
$ key = openssl_get_publickey (certificat $);
openssl_public_encrypt ($ pass, $ userPassCrypted, $ clé, OPENSSL_PKCS1_PADDING);
openssl_free_key ($ key);
Maintenant, j'essaie de faire la même chose avec rubis
require 'OpenSSL' cert = OpenSSL :: X509 :: Certificate.new (certificat)
public_key = cert.public_key
passwordSSL = public_key.public_encrypt (mot de passe, 1)
le problème ici est que ce codage de mot de passe est correspond pas à
le certificat même, mais la clé publique en PHP est:
----- ----- BEGIN CLE PUBLIQUE ... ----- ----- END CLE PUBLIQUE
en rubis est:
--- --BEGIN RSA PUBLIC KEY ----- ... ----- END RSA PUBLIC KEY -----
Je pense que la différence est ici (corps touches pas non plus le même) .. Comment puis-je obtenir à l'intérieur de ruby la même clé publique que dans PHP?
Ou est-ce possible de convertir la clé RSA en quelque sorte?
Ou peut-être que je dois le faire d'une autre manière?
Toutes suggestions très appréciées.
Malheureusement, celui-ci ne va pas aider. Si vous regardez attentivement, vous verrez qu'au début j'ai le certificat X509 ... Donc je n'ai pas de clé publique ni de certificat privé ... De plus votre solution me donnera aussi la clé RSA ... cert .public_key == OpenSSL :: PKey :: RSA Je suppose que – LiMan
Mis à jour pour vous! –
Non ... Le retrait juste ne fonctionnera pas non plus car le corps des clés n'est pas le même. CLÉ PUBLIQUE et clé publique RSA clés complètement différentes ... – LiMan