2012년 12월 30일 일요일

암호화] 통신할때 유용한 aes암호화

개요)
회사에서 만들고 있는 앱 중에 인앱결제를 해야하는 앱이 있다.

대충 뭐.. 앱에서 결제하고 구글에서 승인이 떨어지면
그 아웃풋을 앱이 서버로 전달하고, 아웃풋을 토대로 그 계정에 코인을 넣어주는 간단한 방식이다.

다행히 이번 앱에서는 보안상 크리티컬한 부분이 인앱결제밖에 없기때문에 이부분만 암호화를 해주면 되었다.


본론)

아이폰개발자와 aes암호화를 테스트하려고 검색해서 샘플을 실행해보는데..
소스마다 알고리즘만 같을뿐,, 매개변수의 타입이나 처리방식들이 각각 달라서..
결국에 이렇게 좋은 블로그를 발견할 수 있었다.

http://www.imcore.net/encrypt-decrypt-aes256-c-objective-ios-iphone-ipad-php-java-android-perl-javascript/


이 분은 정말 대단하신게..

java, php, objective-c,perl, c# 등..

각 언어별로 구현해 놓으셔서 저 곳의 라이브러리를 사용하면

각각 다른 환경때문에 발생되는 문제가 없어  어떠한 수정없이 암호화가 쉽게 구현 가능하다.

 물론 다른 aes암호화 라이브러리는 다 쉽게 구현됬지만, 막상 쓰려면 이슈가 생기기 마련이었다. 하지만 이건 단박에 가능하다.



팁) 샘플 소스를 보면 key라는 변수가 있다.

아마도 public key와 private key중에 public key에 해당하며,

 private key 생성은 라이브러리 안에 알아서 생성해주는 것 같다.

 이 public key는 256bit이기때문에 32byte의 글자만 넣을 수 있다.

그리고 본인은 jsp쪽이라서 java라이브러리를 사용하였는데 간단한 jdk환경설정이 필요했다.

아무튼 저분 블로그에 다 잘 나와있으니 참고하시면 되겠다.




마치며) 암호화는 라이브러리만 갖다쓰고,
 제대로 된 공부를 해본 적이 없어서 다음에 기회가 되면 깊이 파보고 싶기도 하다..

댓글 없음:

댓글 쓰기