2017-01-02 4 views
1

Ich möchte ein Äquivalent des Code unten in Ruby erhalten:Equivalent von openssl_public_encrypt PHP-Funktion in Ruby

$key = '-----BEGIN PUBLIC KEY----- 
some public key 
-----END PUBLIC KEY-----'; 

$cc_number = '4242424242424242'; 
openssl_public_encrypt($cc_number, $cc_number_encrypted, $key); 
echo base64_encode($cc_number_encrypted); 

Ich habe versucht:

pkey = '-----BEGIN PUBLIC KEY----- 
some public key 
-----END PUBLIC KEY-----' 

cc = '4242424242424242' 
key = OpenSSL::PKey::RSA.new(pkey) 
puts Base64.encode64(key.public_encrypt(cc)) 

aber es funktioniert nicht. Wie schreibe ich diesen PHP-Code in Ruby?

Antwort

0

Ich fand die Lösung von dieser Frage inspiriert: Strange \n in base64 encoded string in Ruby.

musste ich ändern:

puts Base64.encode64(key.public_encrypt(cc)) 

zu

puts Base64.strict_encode64(key.public_encrypt(cc)) 

Als sagt documentation:

Diese Methode entspricht RFC 4648. Keine Zeile Feeds hinzugefügt werden.