gpt4 book ai didi

ruby - `public_decrypt':填充检查失败(OpenSSL::PKey::RSAError)

转载 作者:行者123 更新时间:2023-12-02 04:21:43 28 4
gpt4 key购买 nike

我正在尝试使用公钥解密。

bob = TCPSocket.open(host, port)

cs_public_key = OpenSSL::PKey::RSA.new File.read 'c_public_key.pem'

puts "Alice is connected to bob"

bobs_public_key = ""
while line = bob.gets # Read lines from socket
bobs_public_key = bobs_public_key + line # and build them
end

bobs_public_key = JSON.parse(bobs_public_key)

puts "Alice recieved Bob's Public Key:"
puts bobs_public_key["key"]

#Error is on this line.
decypted = cs_public_key.public_decrypt(Base64.decode64(bobs_public_key["digest"]))

puts decypted

并且收到错误:'public_decrypt':填充检查失败(OpenSSL::PKey::RSAError)

有人可以解释这个错误的含义以及如何避免它吗?

最佳答案

我最近遇到了此错误,并跟踪了所使用的填充算法,OpenSSL::PKey::RSA 默认为 RSA_PKCS1_PADDING,但生成了消息在另一个默认使用首选 RSA_PKCS1_OAEP_PADDING 的系统中。公共(public)/私有(private)加密/解密方法都采用可选的第二个参数来设置填充,这解决了我的问题。

rsa.private_decrypt encrypted_text, OpenSSL::PKey::RSA::PKCS1_OAEP_PADDING

关于ruby - `public_decrypt':填充检查失败(OpenSSL::PKey::RSAError),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29981406/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com