2016-12-01 13 views
0

Мы пытаемся создать открытый ключ RSA, который должен быть строкой октета, а затем мы должны сделать кодировку DER.DER закодированный открытый ключ RSA (OCTET STRING)

Мы пытаемся создать пару ключей, используя код ниже:

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 закодированным.
+1

Не указывайте поставщика, если у вас нет веских оснований для этого. Вероятно, это делает ваш код не переносимым. –

ответ

2

является actet string; «октетная строка» - еще один термин для «байтового массива».

И он уже закодирован DER, потому что getEncoded обычно возвращает закодированный DER SubjectPublicKeyInfo. Попробуйте openssl asn1parse -inform DER -in <file> на нем.

 Смежные вопросы

  • Нет связанных вопросов^_^