我有PHP脚本,其中的密码编码使用 OpenSSL的完成:红宝石等效PHP函数openssl_pkey_get_public
$键= openssl_get_publickey($证书);
openssl_public_encrypt($ pass,$ userPassCrypted,$ key,OPENSSL_PKCS1_PADDING);
openssl_free_key($ key);
现在我试图与红宝石一样
需要 'openssl的' 证书= OpenSSL的:: X509 :: Certificate.new(证书)
PUBLIC_KEY = cert.public_key
passwordSSL = public_key.public_encrypt (密码1)
这里的问题是,这些密码编码不匹配
证书相同,但在PHP中的公钥 是:
----- BEGIN PUBLIC KEY ----- ... ----- END PUBLIC KEY -----
在红宝石是:
--- --BEGIN RSA PUBLIC KEY ----- ... ----- END RSA PUBLIC KEY -----
我猜这里是区别(键身也不一样)..
我该如何在PHP中获得与Ruby相同的公钥?或者是 可能通过某种方式转换RSA密钥?
或者我可能需要用另一种方式做到这一点?
任何建议高度赞赏。
不幸的是,这一个不会帮助。 如果你仔细看,所以你会看到,在一开始我有X509证书...所以我既没有公钥也没有私人只是证书... 此外你的解决方案也会给我RSA密钥... cert .public_key == OpenSSL :: PKey :: RSA我猜 – LiMan 2010-02-09 09:44:55
为您更新! – 2010-02-09 10:46:52
不...只是删除也不会工作,因为键身不一样。 PUBLIC KEY和RSA PUBLIC KEY完全不同的键...... – LiMan 2010-02-09 14:32:43