我们正在尝试创建一个RSA公共密钥,该键应该是八位字字符串,然后我们需要对其进行编码。
我们正在尝试使用以下代码创建一个密钥对:
public static KeyPair getRSAKeyPair() throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, NoSuchProviderException {
KeyPairGenerator g = KeyPairGenerator.getInstance("RSA", "SC");
g.initialize(2048);
return g.generateKeyPair();
}
,然后使用以下代码从中获取公钥
PublicKey publicKey1 = keyPair.getPublic();
byte[] pubkey = publicKey1.getEncoded();
似乎在上述代码中获取公共密钥是编码的二进制字符串。
查询:
- 如何更改上述代码,以创建一个八位字字符串。
- 如何使其编码。
it 是 ocket字符串;"八位字字符串"是"字节数组"的另一个术语。
并且它已经被编码了,因为getEncoded
通常返回DER编码的SubjectPublicKeyInfo
。在上面尝试openssl asn1parse -inform DER -in <file>
。