IT/Java
BASE64 ENCODE, DECODE 주의사항
Dukejin
2015. 6. 1. 22:13
하이브리드앱 방식의 앱을 개발 중 발생한 트러블 내용을 남겨본다.
appname://key=Abcde+
key 파라미터의 값은 웹에서 BASE64로 인코딩하여 앱으로 넘기는데
문제가 된 부분은 앱에서 해당 값을 디코딩할 때 "bad BASE-64" 오류가 발생하는 것이다.
처음엔 UrlDecoding 후 BASE64 Decoding 하여 문제가 발생하는게 아닐까 의심하였는데
구글링 결과...
생각치 않는 부분에서 버그가 존재한다는 것을 알게 되었다.
버그 내용은 환경에 따라 BASE64로 인코딩한 값을 GET 방식으로 전송하면
"+" 플러스 문자가 공백으로 변경되어 값을 받는 쪽에서는 디코딩 시 오류가 발생할 수
있다는 것이었다.
간단한 해결방법은 값을 받는 측에서 문자치환을 통해 " " 공백문자를 "+" 플러스 문자로
변경하고 BASE64로 디코딩하는 것이다.
공백 외에도 "_"를 "/"로 "-"를 "+"로 치환하여야 한다고 하니 꼭 기억하고 있자.