【问题标题】:DER encoded RSA public key (OCTET STRING )DER 编码的 RSA 公钥(OCTET STRING)
【发布时间】:2017-04-16 03:51:55
【问题描述】:

我们正在尝试创建一个应该是八位字节字符串的 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 编码。

【问题讨论】:

  • 除非您有充分的理由,否则不要指定提供者。它可能只会使您的代码不可移植。

标签: java android rsa der


【解决方案1】:

一个八位组字符串; “字节串”是“字节数组”的另一种说法。

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

【讨论】:

    猜你喜欢
    • 2012-05-09
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2014-10-16
    • 2012-06-13
    • 2011-11-11
    • 1970-01-01
    相关资源
    最近更新 更多