기본 콘텐츠로 건너뛰기

2022의 게시물 표시

추천 가젯

Base64 이론과 파이썬 예제

BASE64 개요 우리는 데이터를 처리할 때, 문자열(ASCII) 데이터를 사용하기도 하고 이진(Binary)데이터를 사용하기도 한다. 문자열 데이터든, 이진 데이터든, 최종적으로 컴퓨터는 이진 데이터로 변환해 처리하지만, 이진 데이터는 사람이 읽기 힘들고, 문자열을 주로 전송하는 프로토콜(SMTP, HTTP 등)에서 원활한 작동이 일어나지 않을 수 있다. 따라서 이진 데이터를 문자열 데이터로 변환하는 과정이 필요하다. 이 과정에서 이진 데이터를 16진수(HEX)로 변환하는 방법이 고안되었다.   예를 들어, '01000101     00110001     01001100'이라는 데이터가 있다. 이 이진 데이터는 사람이 읽기도 힘들고, 무슨 데이터를 뜻하는지 확인하기 어렵다. 따라서 이 데이터를 표기할 때 10진수나 16진수를 이용하여 표현한다. 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 4 5 3 1 4 C 0x45 0x31 0x4C 010001010011000101001100 -> 45 31 4C 위와 같이 3바이트에 해당하는 내용을 단 여섯 문자로 표현할 수 있으며,  16진수의 표기범위인 0~F를 직관적으로 이해할 수 있기에 파일 데이터를 분석할 때 주로 HEX 표기를 사용한다. 다만, 이렇게 Binary를 HEX로 변환하는 것은, 데이터의 분석을 조금 더 쉽게 하기 위함일 뿐이지, Binary 데이터를 문자열로 변환하는 목적으로는 잘 사용되지 않는다. 그러면 어떻게 Binary 데이터를 문자열로, 그것도 효율적으로 바꿀 수 있을까. ASCII 바로 Binary 데이터와 ASCII 문자를 서로 연결하는 사전을 만들어서, 해당 사전에 맞게 Binary 데이터를 ASCII 문자로 변환한다. 이전의 HEX 표기처럼 특정한 패턴의 Binary 데이터를 ASCII 문자에 대칭시키는 것이다. 다만 이러한 방법을 생각해 내도 문제가 발생한다. 1바이트는 256개의 값...

Synology NAS에 Oracle 설치하기