这是我第一次使用API中的加密和RSA公钥-私钥对,因此请保持谨慎:)
我正在尝试使用一个API,该API使用我创建的公共-私人证书和密钥组合对响应进行加密。我在计算机上使用 openssl 命令生成了一个.crt文件和一个私有.key文件,并向服务提供商发送了我的公共密钥进行加密。
但是,当我尝试使用私钥解密字符串时,会抛出
OpenSSL::PKey::RSAError (padding check failed) error on my console.
我尝试生成一堆不同的公钥-私钥对,并且都存在相同的问题,客户端通知我他们使用了PKCS#12填充标准,但是据我了解,PKCS#12只是另一种格式存储公钥和私钥(.pfx / .p12)的过程。如果我在这方面错了,请纠正我。
我用于破坏的命令
encrypted_string = "B/2uayrTTAxvt/2bz0VpxGIq+YHLtNqwB76q3kRdVAYzPhp5CE/sf16FQOXuo2q3SRENZbJZjG9x\r\nFitFLwxttXi148Yt2DBZaC5azAC7hrZIm6PxLGjkBiMjQqELG1MROSR7srMr2w2jITWZSdvuCS3I\r\nihOdpX/jPKezxRf9KmbYI/0blLvl+x3TjaEpn+5RJECl1Igjy85pZSEHQjoTtAC4ZJzqCDE9ALVQ\r\nVh0lBoS5SqWQ8PYxQ0dqtzY7fNZPhbgFH52WfdjUaxr9XW/xEY2tsVePrMyO13UMQGoRj/GAF4ET\r\nTxN0X1SNRoVTpuaMmccfEc8scJj30/Hye0Mqc1CDLupYprlDPVGjUnJScQ7fIEApOsxrMuNxkS4o\r\nrwVSejerHvyVhpwy+Re9/4+96teYvWRonBJC3C4jGcqSLra0BRRzITvYiHR7+57OxUXNM1IBSXW/\r\nb9UYZHIpZegOvjdbJlZZw2m1ctoTfkguMKo3iAonDHIBgwQYUcOawtW6z7YAGjscw9HU82tlrAvS\r\nJjvwitfnwhJfRezhaT04sUtIDmt097h07bk14f6CqyTnUPETraA/wXbOhmrsXjWnMSxZVyF/Ttlj\r\n9KUSp5h1pUDpaHDZb+BIAh0/q+KycTWZs1+iG95L2UmxfxtS+9/M+vBU6C0xuWm7XK5gWZBVc9w="
path = "/path/to/private.key"
private_key = OpenSSL::PKey::RSA.new(File.open(path))
private_key.private_decrypt(Base64.decode64(encrypted_string))
返回:
Traceback (most recent call last):
3: from (irb):10
2: from (irb):10:in `rescue in irb_binding'
1: from (irb):10:in `private_decrypt'
OpenSSL::PKey::RSAError (padding check failed)
我对在这里做什么或做错了事感到茫然。我可以在此处提供公钥和私钥以供参考(不用担心,解决后会立即生成新的)。
我是否缺少某些配置或在密钥生成过程中犯了一些错误?