규도자 개발 블로그
[Java/자바] RSA 공개키, 개인키 암호화 방식을 String형태로 다뤄보자. 본문
[Java/자바] RSA 공개키, 개인키 암호화 방식을 String형태로 다뤄보자.
많이들 쓰이고, 또 그만큼 신뢰할 수 있는 방식인 RSA암호화 방식을 자바로 구현해봤다. 일단 코드는 아래와 같다.
나는 바로 실행해볼 수 있는 코드를 선호하기 때문에 바로 메인에 때려박으면 실행해볼 수 있는 형태로 구현했다. 당장 구글창에 자바 RSA 구현방식만 검색해봐도 예제 수십개가 나오는데 왜 다시 구현했느냐. 방금 말했듯이 나는 바로 실행해볼 수 있는 코드를 선호할 뿐더러, 중요한 이유가 하나 더 있다. 바로 사용성에 대한 부분이다.
우리가 흔히 개인키와 공개키를 접하는 방식은 pem이라는 확장자를 가진 파일이며 이것을 업로드하는 식으로 사용하고는 하는데 pem파일을 보면 거진 평문으로 구성돼있다. 하지만 많은 예제들이 파일로 남길 때에도 객체를 그대로 파일로 내보내기하여 이진파일형태로 구성되는데 그게 별로 마음에 들지 않아 새로 작성하였다. 불러올 때는 반대로 평문으로 작성돼있는 개인키를 갖고 하는 경우가 많았는데 거기에 대해서도 부족한 예제들이 많아 아예 평문으로 구성된 개인키와 공개키를 다룰 때 자바에서는 어떻게 객체화하고 디코딩, 인코딩해야하는지 한눈에 파악할 수 있게 예제를 구성하였다.
개개인의 컴퓨터구성을 알지 못해 파일로 읽고 쓰는 부분은 구현하지 않았지만 개인키와 공개키를 파일로 내보내고 불러올 때 어디에서 이용해야 하는지 충분히 알 수 있을 것이다.
참고로 우리가 흔하게 볼 수 있는 형태인
--------BEGIN RSA PRIVATE KEY--------
~~~
--------END RSA PRIVATE KEY--------
같이 주석처리돼있는 경우는 고려하지 않았다.
'Java' 카테고리의 다른 글
자바(Java)로 프로그래밍 할 때 이름짓는 규칙 (0) | 2018.09.06 |
---|