Base64 인코딩이란 무엇입니까? 실제 바이트를 사용한 첫 번째 예

Base64의 목적을 이해하고, Hello be SGVsbG8=을 참조하고, 인코딩과 암호화의 차이점을 인식하세요.

Base64은 일반 텍스트 문자로 이진 데이터를 표현하는 방법입니다. 그림, 문서 또는 텍스트 조각은 모두 바이트로 표시될 수 있습니다. 시스템이 텍스트 필드 내에 해당 바이트를 필요로 하는 경우 Base64은 수신자가 나중에 디코딩할 수 있는 가역 가능한 철자를 제공합니다.

작은 예

텍스트 Hello 5개의 ASCII 바이트를 포함합니다. 해당 바이트를 인코딩하면 SGVsbG8=. 해당 값을 디코딩하면 동일한 5바이트가 반환되며, 이를 원본 텍스트로 읽을 수 있습니다. 등호는 인코딩의 마지막 그룹에 속합니다. 이는 Hello라는 단어의 일부가 아닙니다.

Text:           Hello
Bytes in Hex:   48 65 6c 6c 6f
Base64:         SGVsbG8=
Decoded bytes:  48 65 6c 6c 6f

인코더에서 예제를 시도하고 결과를 디코더에 복사한 후 반환된 텍스트를 비교하세요. 그런 다음 한자나 이모티콘을 사용해 보세요. 텍스트는 먼저 UTF-8과 같은 문자 인코딩을 사용하여 바이트가 되어야 합니다. Base64 자체는 언어나 문자 집합을 정의하지 않습니다.

어디서 마주치면

일반적인 예로는 JSON의 이진 필드, 데이터 URI의 인라인 이미지, 특정 토큰의 읽을 수 있는 부분이 있습니다. 주변 형식이 컨텍스트를 제공합니다. Base64 문자열 자체는 원본 파일 이름, MIME 유형, 문자 인코딩 또는 콘텐츠를 신뢰할 수 있는지 여부를 알려주지 않습니다.

데이터 URI은 다음과 같은 접두사를 추가합니다. data:image/png;base64,. 해당 접두사는 페이로드를 설명하지만 Base64 알파벳의 일부는 아닙니다. 일부 디코더는 래퍼를 이해합니다. 다른 사람들은 쉼표 뒤의 부분만 기대합니다. 낯선 문자를 무작위로 삭제하는 대신 적절한 도구나 모드를 선택하세요.

세 가지 일반적인 오해

첫째, Base64은 암호화가 아닙니다. 이를 디코딩하는 데 비밀이 필요하지 않습니다. 둘째, 파일을 더 작게 만들지 않습니다. 일반 패딩 출력은 원래 바이트보다 대략 1/3 더 큽니다. 셋째, 디코딩된 결과가 모두 텍스트인 것은 아닙니다. 이미지는 텍스트 상자에서 말도 안되는 것처럼 보이는 바이트로 올바르게 디코딩될 수 있습니다.

디코딩에 실패하면 원본 소스, 선택한 알파벳, 문자열이 잘렸는지 여부를 확인하세요. 성공하면 적합한 보기(유효한 텍스트 바이트의 경우 텍스트, 검사용 16진수 또는 이진 데이터의 경우 파일 다운로드)를 선택합니다. 자세한 Base64 알파벳과 예는 다음에 정의되어 있습니다. RFC 4648.