로컬에서 파일을 인코딩하고 디코딩할 때는 제대로 작동 하지만 base64 [--decode]
Thunderbird 또는 Gmail에서 저장된 eml 파일의 Base64 인코딩 인라인 첨부 파일을 디코딩할 수 없습니다.
모든 eml 파일의 base64 인코딩 블록은 base64
생성된 블록과 유사하지만 줄의 길이는 다릅니다. eml 파일의 base64 인코딩 텍스트 블록의 줄은 다음과 같이 구성됩니다.72자, 로컬에서 생성된 base64 인코딩 파일에는 다음이 포함됩니다.76자 길이철사. 나는 이 차이점이 base64 --decode
EML 파일 조각을 성공적으로 사용할 수 없는 이유라고 생각합니다.
내 가정이 사실인가요? 이러한 첨부 파일을 어떻게 해독하나요?
답변1
이 명령은 base64
실행됩니다코딩옵션을 사용하여 다른 값을 지정하지 않는 한 기본 열 너비인 76자로 텍스트를 줄바꿈합니다 --wrap=COLS
.
이 명령은 열 너비에 관계없이 올바르게 작동합니다 base64 --decode
. 예를 들어 텍스트 블록은 길이에 상관없이 한 줄로 구성되거나 고정된 열 너비에 맞춰 여러 줄로 구성될 수 있습니다.
Thunderbird 또는 GMail과 같은 웹 메일에서 저장된 "인터넷 메시지 형식"(*.eml) 파일의 문제는 실제로 Unix/Linux(" LF"가 아닌 DOS/Windows("CRLF"/"\r\n")를 사용한다는 것입니다. / "\n") - 줄 종결자이며 둘 다 후자를 base64
사용합니다 .base64 --decode
dos2unix
이는 인터넷 메시지 형식(*.eml) 파일(또는 이 파일에서 검색된 Base64 인코딩 텍스트 블록)이 먼저 다음을 사용하여 변환되어야 함을 의미합니다.앞으로base64 --decode
주문을 실행합니다 .