Programing

Base64 인코딩의 실제 목적은 무엇입니까?

lottogame 2020. 11. 12. 07:41
반응형

Base64 인코딩의 실제 목적은 무엇입니까?


Base64 인코딩이있는 이유는 무엇입니까? 나는 초보자이고 왜 바이트를 다른 것으로 난독 화해야 하는지를 이해하지 못합니다 (암호화가 아닌 경우). 내가 읽은 책 중 하나에서 Base64 인코딩은 바이너리 전송이 불가능할 때 유용합니다. 예 : 양식을 게시하면 인코딩됩니다. 그런데 왜 바이트를 문자로 변환할까요? 사이에 공백이있는 문자열 형식으로 바이트를 변환 할 수 없습니까? 예를 들어, 00000001 00000004? 아니면 0000000100000004바이트가 항상 8 쌍으로 나오기 때문에 공백이 없습니까?


Base64는 내용 자체의 손실이나 수정없이 데이터를 전송하기 위해 이진 데이터를 거의 모든 컴퓨터 시스템에 알려진 ASCII 문자 집합으로 인코딩하는 방법입니다. 예를 들어 메일 시스템은 ASCII (텍스트) 데이터를 예상하기 때문에 바이너리 데이터를 처리 할 수 ​​없습니다. 따라서 이미지 또는 다른 파일을 전송하려는 경우 데이터를 처리하는 방식으로 인해 손상됩니다.

참고 : base64 인코딩은 데이터를 암호화하거나 압축하는 방법이 아닙니다. 실제로 base64로 인코딩 된 데이터 조각은 원래 데이터 조각보다 1.333 배 더 큽니다. 전송 중에 데이터가 손실되거나 수정되지 않도록하는 방법 일뿐입니다.


Base64는 인쇄 가능한 문자 만 허용하는 매체를 통해 이진 데이터를 표현하고 전송할 수있는 메커니즘입니다. 가장 널리 사용되는 "Base Encoding"형식이며 사용중인 것으로 알려진 다른 형식은 Base16 및 Base32입니다.

Base64의 필요성은 이미지, 동영상 또는 임의의 바이너리 콘텐츠와 같은 이메일에 바이너리 콘텐츠를 첨부해야하기 때문에 발생했습니다. SMTP [RFC 5321]은 메시지 내에서 7 비트 US-ASCII 문자 만 허용했기 때문에 7 비트 ASCII 문자를 사용하여 이러한 이진 옥텟 스트림을 표현해야했습니다.

이것이 질문에 답하기를 바랍니다


Base64는 모든 종류의 이진 데이터를 전송 (실제로 인코딩하지만 전송을 목표로 함)하는 다소 간결한 방법입니다.

http://en.wikipedia.org/wiki/Base64 참조

"일반적인 규칙은 대부분의 인코딩에 공통적 인 부분 집합의 일부이며 인쇄 가능한 64 자 집합을 선택하는 것입니다."

이것은 매우 일반적인 목적이며 일반적인 필요는 필요한 것보다 더 많은 공간을 낭비하지 않는 것입니다.

역사적으로 이것은 문자를 바이트에 저장하는 데 사용되는 (거의) 모든 인코딩의 공통 하위 집합이 있고 간단한 데이터 전송 (예 : 복사) 중에 많은 2 ^ 8 바이트의 손실 또는 변환 위험이 있다는 사실을 기반으로합니다. 붙여 넣기-이메일 보내기-이메일 수신-복사-붙여 넣기 시퀀스).

(Brian의 의견으로 upvote를 리디렉션하십시오. 더 완전하고 더 명확하게 작성하겠습니다).

참고 URL : https://stackoverflow.com/questions/10315757/what-is-the-real-purpose-of-base64-encoding

반응형