Base64로 인코딩된 이메일 및 압축

Base64로 인코딩된 이메일 및 압축

약 2500자 길이의 텍스트와 60KiB PNG 파일이 첨부된 이메일을 보냈습니다. 텍스트에는 숫자 185가 8번 포함되어 있습니다. 그러나 이메일이 base64로 인코딩되어 전송된 후에는 이메일 소스에서 3개의 "MTg1"(base64 인코딩에서 "MTg1"은 "185"임) 문자열만 찾을 수 있습니다. 이것을 어떻게 설명할 것인가? 이메일 헤더에 따르면 콘텐츠 유형은 "text/plain;charset=UTF-8"이고 콘텐츠 전송 인코딩은 "base64"입니다.

답변1

Base64 인코딩은 6바이트를 8바이트로 변환합니다. 주어진 일반 텍스트에는 3가지 가능한 인코딩이 있으며 한 번에 몇 비트씩 이동됩니다(다른 인코딩된 텍스트와 혼합되어 찾기가 쉽지 않음).

>>> '185'.encode('base64')
'MTg1\n'
>>> '\x00185'.encode('base64')
'ADE4NQ==\n'
>>> '\x00\x00185'.encode('base64')
'AAAxODU=\n'
>>> '\x00\x00\x00185'.encode('base64')
'AAAAMTg1\n'

관련 정보