안녕하세요
데이터를 인코딩할 때 여러 가지 기법이 쓰이는데요
그중 base64에 대해 알아봅시다.
위키백과에 의하면
base64는 8비트 이진 데이터 예를 들어 exe파일이나 zip 파일 등 문자 코드에 영향을 받지 않는
공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념입니다.
이진 데이터는 바이너리 데이터라고도 하는데요
0과 1로 이루어진 데이터를 말합니다. 컴퓨터 안에 있는 모든 데이터는 컴퓨터 입장에서 봤을 땐 다 0과 1로 이루어져 있죠
텍스트나 이미지 같은 파일도 다 0과 1로 이루어져 있습니다. 이걸 base64로 변환하여
http통신을 하게 됩니다. 예를들어 html 파일을 만들어 그 웹페이지 안에 이미지나 아니면 다른 파일을 띄우게 할 수도 있고
공공 ai 데이터에 내보내서 그에 맞는 값을 얻는데 쓰입니다.
Base64 과정
base64는 먼저 알파벳 글자를 ASCII코드로 변환시킵니다.
예를들어 man이라는 영어단어가 있을 때
ASCII코드로써 Man은 M = 77, a = 97, n = 110입니다.
이걸 하나하나 이진수로 변환합니다.
77 = 01001101, 97 = 01100001, 110 = 01101110 이렇게 되네요
이진수 숫자가 8개 총 8비트로 되있습니다.
그럼 8비트인 이진수 숫자가 3개 있으니 총 24개인데요 이걸 6비트씩 나눠 줍니다. 그리고
base64 변환표에 의해 10진수로 바꿔준 다음 그에 맞는 알파벳을 대입해주면 됩니다.
그러면 Man 같은 경우 TWFu가 나옵니다.
아두이노로 직접 base64를 진행해 봅시다.
먼저 base64 라이브러리를 설치해 줍시다.
base64를 검색하여 설치해 줍시다.
굳이 함수를 짤 필요가 없습니다. 라이브러리를 써서
api에 변수만 전달해 주면 됩니다. 코드는 다음과 같이 작성해주세요
#include<base64.h>
void setup(){
Serial.begin(115200);
String toEncode = "Man";
String encoded = base64::encode(toEncode);
Serial.println(encoded);
}
void loop(){
}
간단합니다. 그리고 실행시킨다음
시리얼 모니터를 켜주세요
다음과 같이 뜨는걸 확인할 수 있습니다.
'Coding > Arduino' 카테고리의 다른 글
아두이노 우노로 아두이노 프로 미니 업로드 하기 (0) | 2022.07.07 |
---|---|
아두이노 써미스터 온도센서 DM440 다루기 (0) | 2022.07.06 |
아두이노 esp32 cam으로 ai 사물인식 카메라 만들기 (0) | 2022.06.30 |
아두이노로 ESP32 CAM 다루기 (0) | 2022.06.28 |
아두이노 Esp8266 시리즈 esp01로 와이파이 연결하기 (0) | 2022.06.27 |