개념 사전 · 개념

인코딩과 Base64

Encoding · 부호화

인코딩은 같은 정보를 전송·저장 형식에 맞게 다른 표현으로 바꾸는 규칙이다. 복원에 비밀키가 필요하지 않으므로 나 16진수 변환은 기밀성 보호가 아니다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

01무엇이고, 어떤 일을 하나

  • 문자열을 같은 바이트 표현과 연결한다.
  • 바이너리를 텍스트 전송에 적합한 문자로 표현한다.
  • 해시·서명·길이 필드가 실제로 처리하는 입력을 정확히 정한다.

02어떤 순서로 동작하나

  1. 입력 바이트

    컴퓨터가 해시하거나 암호화하는 대상은 화면의 글자 모양이 아니라 바이트 열이다. 문자열 A는 에서 0x41이고, 이 바이트를 로 표현하면 QQ==다.

  2. 표현

    다시 를 풀면 0x41을 얻는다. 문자열을 바이트로 바꾸어 해시한 결과와 디코딩한 원래 바이트를 해시한 결과는 서로 다르다.

  3. 인코딩과 비밀

    인코딩은 비밀키 없이 정해진 규칙으로 되돌릴 수 있는 표현 변환이다.

  4. 퍼센트 인코딩

    URL의 퍼센트 인코딩은 전달 문맥에서 특별한 의미를 가진 바이트를 표현한다. HTML 엔티티는 HTML 파서가 문자를 해석하는 방법에 관여한다.

  5. 디코딩 경계

    둘을 일반적인 암호화라고 부르면 나 URL 파싱 문제를 잘못 이해하게 된다. 어떤 디코더가 어느 단계에서 적용되는지에 따라 같은 입력이 나중에 제어 문자나 구문으로 바뀔 수 있다.

03먼저 알아둘 용어와 구성요소

문자를 가변 길이 바이트로 표현하는 문자 인코딩.
한 바이트를 두 개의 16진수 문자로 표시하는 표현.
일반적으로 3바이트를 4개의 문자로 표현하는 바이너리-텍스트 인코딩.
여러 표현을 비교 가능한 일정 형태로 정규화하는 처리.
URL 구성 요소의 바이트를 %와 16진수로 표현하는 방식.

04예제로 따라가기

  • 문자 가는 에서 EA B0 80의 3바이트다. 문자 수 1과 전송 길이 3은 다르다.
  • 파일 끝에 LF 한 바이트가 추가되면 눈으로 보이는 문장이 같아도 해시 입력과 출력은 달라진다.
  • 로 바뀐 비밀번호는 누구나 디코딩할 수 있으므로 암호화된 비밀번호로 취급하지 않는다.

05혼동하기 쉬운 점과 확인 기준

  • 인코딩을 여러 번 적용하면 복호화가 필요해 보일 수 있지만 비밀키 기반 보호가 새로 생기지는 않는다.
  • 정규화·줄바꿈·BOM 차이를 무시하면 같은 문서로 보이는 두 입력의 서명·해시 비교가 실패할 수 있다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.