2016-12-01 9 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

옥텟 문자열입니다. "옥텟 문자열"은 "바이트 배열"의 또 다른 용어입니다.

getEncoded은 보통 SubjectPublicKeyInfo으로 인코딩 된 DER을 반환하기 때문에 이미 DER로 인코딩됩니다. 그것에 openssl asn1parse -inform DER -in <file> 시도하십시오.