https://tools.ietf.org/html/draft-ietf-jose-json-web-key-41
공개키/비밀키에 대한 정보를 아래와 같이 엔코딩하여 반환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
KeyPairGenerator keygen = KeyPairGenerator.getInstance("RSA");
SecureRandom random = new SecureRandom();
keygen.initialize(1024, random);
KeyPair keys = keygen.generateKeyPair();
PublicKey pubkey = keys.getPublic();
PrivateKey privkey = keys.getPrivate();
System.out.println("PublicKey => "+(new String(Base64.encodeBase64(pubkey.getEncoded()))) );
System.out.println("PrivateKey => "+(new String(Base64.encodeBase64(privkey.getEncoded()))) );
byte[] array = ((RSAPublicKey)pubkey).getModulus().toByteArray();
if (array[0] == 0) {
byte[] tmp = new byte[array.length - 1];
System.arraycopy(array, 1, tmp, 0, tmp.length);
array = tmp;
}
System.out.println("n => "+ (new String(Base64.encodeBase64(array))) );
array = ((RSAPublicKey)pubkey).getPublicExponent().toByteArray();
if (array[0] == 0) {
byte[] tmp = new byte[array.length - 1];
System.arraycopy(array, 1, tmp, 0, tmp.length);
array = tmp;
}
System.out.println("e => " + (new String(Base64.encodeBase64(array))) ); |