[security] 기본 64 인코딩의 목적은 무엇이며 HTTP 기본 인증에 사용 된 이유는 무엇입니까?

Base64 암호화를 얻지 못했습니다.

Base64 문자열을 해독 할 수 있다면 목적은 무엇입니까?

왜 HTTP Basic 인증에 사용됩니까?

누군가에게 내 비밀번호가 OLLEH로 바뀌 었다고 말하는 것과 같습니다.

OLLEH를 보는 사람들은 원래 비밀번호가 HELLO라는 것을 알게 될 것입니다.



답변

Base64는 암호화가 아니라 인코딩입니다. 인쇄 가능한 (텍스트) 문자 만 사용하여 이진 데이터를 나타내는 방법입니다.

HTTP 기본 인증에 대해서는 Wikipedia 페이지 에서이 단락을 참조하십시오 .

Base64 알고리즘으로 사용자 이름과 암호를 인코딩하면 일반적으로 육안으로 읽을 수 없지만 인코딩되는 것처럼 쉽게 해독됩니다. 보안은 인코딩 단계의 의도가 아닙니다. 대신, 인코딩의 목적은 사용자 이름 또는 비밀번호에있을 수있는 비 HTTP 호환 문자를 HTTP 호환 문자로 인코딩하는 것입니다.


답변

일반적으로 암호화가 아닌 base64 인코딩이라고합니다 ! base64 인코딩의 좋은 점은 사용 가능한 문자의 제한된 공통 서브 세트 만 사용하여 (이진) 데이터를 표현할 수 있다는 것입니다. 예를 들어 ASCII로 1과 0의 문자열을 쓰는 것보다 훨씬 효율적입니다.


답변

크립트 이온 해독하기 위해 키 (문자열이나 알고리즘) 요구; 따라서 “crypt”(루트 : cryptography )

욕실은 대구 보내고 수정 / 교대 / 다른으로 문자 코드를 변경합니다. 이 경우 HTTP를 사용하여 일반적인 바이트 데이터를 쉽게 표현하고 전송할 수 있습니다.


답변

일상 언어에서 “코드”는 비밀입니다. 과학 및 공학에서 코드는 단순히 무언가를 작성하는 방법에 대한 계약, 규칙 집합입니다.

그 코드 비밀 일 수 있습니다. 이 경우이를 암호화라고합니다. 그러나 일반적으로 코드는 비밀이 아닙니다. 유전자 코드를 가져 가라. – 그것은 단순히 우리의 DNA는 네 개의 다른 기지에서 구축한다고  A, C, GT 세 개의 기지가 함께하고 있다는 하나를 아미노산을 형성한다. 또한 세 글자가 어떤 아미노산을 형성하는지에 대한 표도 있습니다.

이 코드에 대한 비밀은 없습니다.

마찬가지로 Base64는 비밀 코드가 아닙니다. 오히려 문자 당 6 비트로 데이터를 저장할 수있는 코드입니다 (따라서 10 개의 다른 엔터티가 있기 때문에 64 개의 다른 엔터티가 있습니다. 즉, 시스템의 “베이스”가 10 인 것처럼 시스템의 “베이스”는 64입니다) “숫자”라고 함).


답변

“Base 64 Encoding”을 의미 할 수 있습니다. 암호화는 인코딩과 다릅니다.

위키 백과 : 암호화


답변

Base-64 인코딩은 MIME 사양의 일부입니다. 운송 안전을 제공합니다원래 클라이언트가 사용하는 것과 다른 인코딩 체계를 사용하는 호스트를 통해 릴레이되는 경우 씹지 않는 데이터에 대해 인코딩을 .

인터 튜브에는 많은 다른 호스트가 있으며 실제로 데이터 손실 / 혼란의 위험없이 7 비트 ASCII 이외의 것을 지원한다고 가정 할 수는 없습니다.

예를 들어, IBM 메인 프레임은 EBCDIC (다양한 풍미가 있음)이라는 인코딩을 사용합니다. 코드 포인트는 ASCII 기반 ‘puters’에서 사용하는 코드 포인트와 완전히 다릅니다. ASCII에서 문자 AZ는 0x41-0x5A입니다. EBCDIC에서 문자 A-Z는 연속적인 범위도 아닙니다 : 문자 AI는 0xC1-0xC9에, 문자 JR은 0xD1-0xD9에, 문자 SZ는 0xE2-0xE9에 있습니다.


답변

기본적으로 HTTP (Hypertext Transfer Protocol) 메시지의 메시지 헤더 필드 매개 변수는 ISO-8859-1 문자 세트 외부의 문자를 전달할 수 없습니다.

사용자 이름과 비밀번호에 호환되지 않는 문자 세트가 포함되어 있으면 HTTP보다 해당 텍스트를 전달할 수 없습니다. 이를 방지하기 위해 사용자 이름과 비밀번호를 base64로 인코딩하여 HTTP를 통해 HTTP 호환 문자를 보내도록합니다. 자세한 내용은이 Basic_access_authentication을 참조하십시오.