我试图使用公钥初始化OpenSSL :: PKey :: RSA,但它无法正常工作 .
以下是密钥对:
-----BEGIN RSA PRIVATE KEY-----
MIIBOwIBAAJBALbkpbDFbZ54bM5ybwwdCqsUHjxWQF4B0Q1sAOBFEYdpxZJZ8dAz
ycPzIgSlPc8yqjeqwJQtvCpktrntALpX1ksCAwEAAQJAYT0XyvBs48BrOSgmWm5m
aab8nF/PQSv+FgDCRnryYue3WZOpUqITB0w6ivC68G/+Mf6IXyE4ljqw2iIAdjyv
YQIhAOE20o2bLPMtziEOdH0KGpN0gNYpe38jGyvGw7k5gZd9AiEAz+TWZRJpc9yX
5dew3xcBtIhaTPFmVLgmfU7FwIWW32cCIQCvKK9LmUO1gouN5CsvUNtokbTeW/cD
467vNjDlb1deFQIhAK55pZ1p2GrOpgTWArEYg+vZy79rkbBkZJkh9UFgXIDdAiBm
Rglcmt9cD2Vqg7xMr7cP3FJbSmJffSwYve1fazuZOw==
-----END RSA PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
MEoCAQACQLbkpbDFbZ54bM5ybwwdCqsUHjxWQF4B0Q1sAOBFEYdpxZJZ8dAzycPz
IgSlPc8yqjeqwJQtvCpktrntALpX1ksCAwEAAQ==
-----END PUBLIC KEY-----
OpenSSL::PKey::RSA.new(private_key) # WORKS!
OpenSSL::PKey::RSA.new(public_key) # FAILS!
OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error
from (irb):16:in `initialize'
from (irb):16:in `new'
from (irb):16
from /Users/dhracker/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.8/lib/rails/commands/console.rb:47:in `start'
from /Users/dhracker/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.8/lib/rails/commands/console.rb:8:in `start'
from /Users/dhracker/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.8/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
another_public_key = OpenSSL::PKey::RSA.new(512).public_key
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMS6XZD2NHTCwdgT+A2/PkStyJwYX/Qu
mfCyZc5TE5IZYaKsBg4uGcI97r8lxEv6rx5b0b6cIwQ7A7e6CUVph5MCAwEAAQ==
-----END PUBLIC KEY-----
OpenSSL::PKey::RSA.new(another_public_key) # WORKS!
public_key导致事情失败的问题是什么?
4 回答
看起来你在那里应该只工作公钥本身是无效的 . 也许你在某些时候通过偶然添加或删除一个额外的角色来破坏它们 . 您可以测试此密钥,并且应该看到它正常运行
我通过首先运行linux命令生成一个openSSH密钥对来生成我的密钥
然后我将OpenSSH样式公钥转换为OpenSSL样式密钥(PEM格式),将其存储在名为'pem'的文件中 .
点击此链接http://skim.la/2012/01/16/rsa-public-key-interoperability-between-ruby-and-android/我通过这种方式获得了更多成功 .
同一天,我遇到了同样的问题,更改密码可能会对你有所帮助 . 因此,请验证您的密码并在通知类中进行更改 . 我希望这可能会对您有所帮助 .
我在文件中更改了
app/jobs/notification_job.rb
我遇到了同样的问题,我在互联网上尝试了很多不同的解决方案 . 但实际问题在于我提供的
key
. 密钥的格式应该是正确的 . 不应该有任何额外的字符或\n , \t
.我希望这对你有帮助 . 所以,请再次检查你的密钥 .