0

我们正在尝试创建一个应该是八位字节字符串的 RSA 公钥,然后我们需要对其进行 DER 编码。

我们正在尝试使用以下代码创建密钥对:

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();

在上面的代码中获取的公钥似乎是 DER 编码的二进制字符串。

查询:

  1. 如何更改上述代码以创建八位字节字符串。
  2. 我怎样才能使它被 DER 编码。
4

1 回答 1

3

一个八位字节字符串;“八位字节串”是“字节数组”的另一个术语。

它已经被 DER 编码,因为getEncoded通常返回一个 DER 编码SubjectPublicKeyInfo。试试看openssl asn1parse -inform DER -in <file>

于 2016-12-01T21:51:11.033 回答