如何将 base 64 编码的公钥 (.pem) 转换为 bytearray?

Pra*_*raj 1 openssl

我需要使用 openssl 将 .pem 格式的 Base 64 编码公钥文件转换为字节数组。

需要从以下格式转换公钥:

----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxl4aRnRMBB9GZrNgy6sy
seyIA3Ek3a1xg0b8gKrCSgnSjH+lqtBGwtzKqM020piE1q0YrzGpfQxNJ8HPRc0F
OlII7VKuCFGqEuLH2+kFJPUUdRqBr0iN/D8ADp9rLEL2Q4F7qM1t0z0IW6zD

-----END PUBLIC KEY----- 
Run Code Online (Sandbox Code Playgroud)

到这种格式:

48, -127, -97, 48, 13, 6, 9, 42, -122, 72, -122, -9, 13,...
Run Code Online (Sandbox Code Playgroud)

cas*_*cas 7

sed -e '/----.*PUBLIC KEY----\|^[[:space:]]*$/d' praj.pem | 
    base64 -d | 
    hexdump -v -e '/1 "%02d, "' ; echo
Run Code Online (Sandbox Code Playgroud)

这用于sed删除包含公钥的 BEGIN 和 END 标记的空白行和行,然后将其输入base64 -d以对其进行解码,然后hexdump使用自定义格式将其输入以将字节打印为逗号和空格分隔的十进制数. 最后echo用于确保输出以换行符 ( \n) 结束。

输出:

48, -126, 01, 34, 48, 13, 06, 09, 42, -122, 72, -122, -9, 13, 01, 01, 01, 05, ...
Run Code Online (Sandbox Code Playgroud)