我正在使用 OpenSSL::PKey::RSA.new(2048) 創建公鑰和私鑰..
privae_key = OpenSSL::PKey::RSA.new(2048)
public_key = private_key.public_key
下面是我的公鑰
puts public_key.class
=> OpenSSL::PKey::RSA
puts public_key
=> -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAywjG1X8f87fAg7yW/u7V
wPxOoR/yVAs87ew0rpcWuSKClVF8sXSuGI9LPXDVFIrBegw4zVI6PBAdKWqw6Ogv
y3KwHGD3z6AtwzQzUHvkT74zkSKcpGMSqITwAzUOjX0JbJSH0n3YBhekg3og6A G
TxZDivoa3VPsN hoW7bvai4dUDbCpeDbahLgPggVe9mc/jNc2 Ozf79lROgC4q9P
cpyQi7e4qHsZfptNU9lE3a69fI23O2MhGNtu1 ke2D GL8whXC66pXctnhPD 3 5
OC7x/dFaN7OIv44rYc7udc7lwEtHhfKIgVP8mIYai cJMfq4G Ip/nn5xwihCkUt
4QIDAQAB
-----END PUBLIC KEY-----
從上面的公鑰中,我只想提取密鑰部分,即我只想從上面的公鑰中以字串的形式提取下面的資料。我想忽略頁眉 -----BEGIN PUBLIC KEY----- 和頁腳 -----END PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAywjG1X8f87fAg7yW/u7V
wPxOoR/yVAs87ew0rpcWuSKClVF8sXSuGI9LPXDVFIrBegw4zVI6PBAdKWqw6Ogv
y3KwHGD3z6AtwzQzUHvkT74zkSKcpGMSqITwAzUOjX0JbJSH0n3YBhekg3og6A G
TxZDivoa3VPsN hoW7bvai4dUDbCpeDbahLgPggVe9mc/jNc2 Ozf79lROgC4q9P
cpyQi7e4qHsZfptNU9lE3a69fI23O2MhGNtu1 ke2D GL8whXC66pXctnhPD 3 5
OC7x/dFaN7OIv44rYc7udc7lwEtHhfKIgVP8mIYai cJMfq4G Ip/nn5xwihCkUt
4QIDAQAB
有沒有辦法做到這一點?我嘗試了物件支持的所有方法,public_key但沒有任何效果..有人可以幫忙嗎?
uj5u.com熱心網友回復:
您可以使用 將密鑰匯出為字串to_pem()。此字串包含 PEM 編碼的密鑰,即標頭、帶有換行符的 Base64 編碼正文和頁腳。然后可以使用以下命令洗掉頁眉和頁腳sub():
require "openssl"
private_key = OpenSSL::PKey::RSA.new(2048)
public_key = private_key.public_key
pem = public_key.to_pem
pem.sub! "-----BEGIN PUBLIC KEY-----\n", ''
pem.sub! "\n-----END PUBLIC KEY-----", ''
#pem.gsub! "\n", '' # remove all remaining linebreaks
puts pem.class
puts pem
可能的輸出:
String
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmTbDL1Tqz83QPvQ8cbFp
GWIXk5ukTX0E18PHY//3GaSF0xMLGBx6KeGprCpJbhUGcxFQi2/Hdr9BAjaqDwF6
89Bo2CHW5wU4HL0IgcahrfcpZGlggMEbEpKH6boppt6XZuppAAkxBprHVkJ951Ve
TK3tqpO8i4x9t5JuJteSbb67ts2IOXbi/YGUOassby3y4Q286YCYZh5VXHMLdKKJ
qHgICUn1dlAMI7ie0n4s1ESnkqo9GXgWAy3WrJTUsX/FK97 8h b1aa0qnHbwWpp
dxNxExdUUEgBGHKz4piVwTJ9gfQu4hSQpcVstUgjDx6qTo9HSu4iQi1FPKxZG0lN
xwIDAQAB
或者,可以使用to_der()Base64 編碼的結果匯出密鑰。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/468346.html
上一篇:正則運算式捕獲ApiAuth標頭
