我想在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);
我试过了:
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))
但它不起作用。 如何用Ruby编写这个PHP代码?
答案 0 :(得分:0)
我发现解决方案受到这个问题的启发:Strange \n in base64 encoded string in Ruby。
我不得不改变:
puts Base64.encode64(key.public_encrypt(cc))
到
puts Base64.strict_encode64(key.public_encrypt(cc))
正如documentation所说:
此方法符合RFC 4648.未添加任何换行符。