openssl을 이용한 RSA 비밀키,공개키,증명서의 생성

openssl genrsa -out rsa-private.pem 1024 (2) 공개키 생성 (PEM형식)

openssl rsa -in rsa-private.pem -pubout -outform PEM -out rsa-public.pem
아래와 같은 rsa-public.pem 이 생성된다.
—–BEGIN PUBLIC KEY—– MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC0BJcXpwWOgzHiv1Te1pF4oRIl j3T00etVYPRipAJGETctYtaUDNfXjq4Mm1FVjCwWsTjBHbBluQ5jOUWVUu6urdxC 1FmMnvLrBAwDYtySLxWT0rCBTHOYegpOnwLjFNz/9bA9nzbPoua+RhA4xpOThXSF Qwk7iBYxf1c70X/0SQIDAQAB —–END PUBLIC KEY—–
(3) 생성한 공개키를 Java에서 가져오기
String cert = "여기에 -- BEGIN / END -- 를 제외한 부분을 넣는다.";
byte[] encodedKey = Base64.decode(cert.getBytes());
EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(encodedKey);
KeyFactory kf = KeyFactory.getInstance("RSA");
PublicKey pk = kf.generatePublic(publicKeySpec);
Cipher rsa = Cipher.getInstance("RSA");
rsa.init(Cipher.ENCRYPT_MODE, pk);
아래와 같이 암호화하여 파일을 출력할 수 있다.
OutputStream os = new CipherOutputStream(new FileOutputStream("c:\encrypted.rsa"), rsa);
Writer out = new OutputStreamWriter(os);
out.write("Hello World!!");
out.close();
os.close();
]]>

Related Posts