解密 PKCS#8 Ruby OpenSSL
Decrypt PKCS#8 Ruby OpenSSL
我需要使用 OpenSSL ruby gem 来解密文件。我已经尝试了每个 post 告诉我做的事情。我尝试使用以下代码:Load PKCS#8 binary key into Ruby
def box(tag, lines)
lines.unshift "-----BEGIN #{tag}-----"
lines.push "-----END #{tag}-----"
lines.join("\n")
end
def der_to_pem(tag, der)
box tag, Base64.strict_encode64(der).scan(/.{1,64}/)
end
pem = der_to_pementer code here('ENCRYPTED PRIVATE KEY', File.read('./file.key'))
key = OpenSSL::PKey::RSA.new(pem, 'passkey')
puts key
puts pem
我明白了:
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAzxy...
...ECYUOVC3zgw23aGcFA8z9ghI=
-----END RSA PRIVATE KEY-----
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgk...
...Y948X9Zop7aCnxmWI7vHNts=
-----END ENCRYPTED PRIVATE KEY-----
但我需要这样的东西:
-----BEGIN PRIVATE KEY-----
MIIEvwIBADA...
...ZwUDzP2CEg==
-----END PRIVATE KEY-----
这是有效的控制台代码,但正如我所说,我需要使用 ruby gem:
openssl pkcs8 -inform DER -in "./file.key" -passin pass:passkey -out "./file.key.pem"
不幸的是,openssl
gem 无法解密 PKCS#8 格式。但是也有一些hacky方法。
- 从 ruby 执行 OpenSSL 命令。
- 安装以下 gem (https://github.com/twg/openssl_pkcs8)
我需要使用 OpenSSL ruby gem 来解密文件。我已经尝试了每个 post 告诉我做的事情。我尝试使用以下代码:Load PKCS#8 binary key into Ruby
def box(tag, lines)
lines.unshift "-----BEGIN #{tag}-----"
lines.push "-----END #{tag}-----"
lines.join("\n")
end
def der_to_pem(tag, der)
box tag, Base64.strict_encode64(der).scan(/.{1,64}/)
end
pem = der_to_pementer code here('ENCRYPTED PRIVATE KEY', File.read('./file.key'))
key = OpenSSL::PKey::RSA.new(pem, 'passkey')
puts key
puts pem
我明白了:
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAzxy...
...ECYUOVC3zgw23aGcFA8z9ghI=
-----END RSA PRIVATE KEY-----
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFDjBABgk...
...Y948X9Zop7aCnxmWI7vHNts=
-----END ENCRYPTED PRIVATE KEY-----
但我需要这样的东西:
-----BEGIN PRIVATE KEY-----
MIIEvwIBADA...
...ZwUDzP2CEg==
-----END PRIVATE KEY-----
这是有效的控制台代码,但正如我所说,我需要使用 ruby gem:
openssl pkcs8 -inform DER -in "./file.key" -passin pass:passkey -out "./file.key.pem"
不幸的是,openssl
gem 无法解密 PKCS#8 格式。但是也有一些hacky方法。
- 从 ruby 执行 OpenSSL 命令。
- 安装以下 gem (https://github.com/twg/openssl_pkcs8)