마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이미지는 왜 base64로 인코딩 해야하나요?

0 추천

안드로이드와 플라스크 서버 개발을 배우고 있는 프린이입니다.

이미지를 서버에서 

data = base64.urlsafe_b64decode(encoded_data)

이렇게 인코딩 하구

안드로이드에서 볼 때도 base64로 복호화해서 쓰는 걸로 알고 있습니다.

그런데 SSL로 통신하면 암호화가 되어서 이미 보호가 될 것인데 왜 이렇게 하는 것인지 궁금합니당

 

매우 기초적인 것이지만 아무 것도 모르는 상태라 도움 부탁드립니다ㅠ

 

 

거스너 (400 포인트) 님이 2018년 3월 5일 질문

1개의 답변

+1 추천
 
채택된 답변

1. 그런데 SSL로 통신하면 암호화가 되어서 이미 보호가 될 것인데...

 base64는 byte 정보를 String 형식으로 변경하는 인코딩 형식일 뿐, 암호화 방식이라 보기 어렵습니다.

암호화는 별도 암호화 key를 사용해서 다른 사람이 못 알아보게 변경하는 방식으로, 

AES, DES 등의 대칭키 알고리즘이나 RSA 같은 공개키 알고리즘를 사용합니다.

SSL는 내부적으로  RSA 를 사용한다 보시면됩니다.

 

2.  왜 이렇게 하는 것인지 궁금합니당

http post 형식으로 이미지만 보내실거면  굳이 base64인코딩을 해서 보낼 필요가 없습니다.

오히려 인코딩하면, 원래 길이가 x라 할 때 (((((x) + 2 ) / 3 ) * 4 ) + 1 ) 사이즈가 되기 때문에,

데이터 전송량이 늘어납니다.

 

하지만.   이미지 정보를 http post의 데이터 부분이 아닌 헤더 부분에  넣어서 전송하기를 원하거나

 이미지 정보 이외에 다른 이미지 정보나,   사이즈, 만든이 같은 메타 정보를 같이 보내야 할 경우, 인코딩을 해서 String으로 보내고, 구분자를 넣어주면,  구분이 편해서,  인코딩을 해서 전송하는 경우가 있습니다.

익명사용자 님이 2018년 3월 5일 답변
거스너님이 2018년 3월 6일 채택됨
아 그런 심오한 이유가 있었군요. 답변 정말 감사합니다. 역시 하나하나 다 이유가 있는 게 참 재미있네요 프로그래밍의 세계는!! 감사합니다. 정말 도움이 되었습니다!!
...