Python에서 Base64 문자열 인코딩 및 디코딩

Python에서 Base64 문자열 인코딩 및 디코딩

Base64 인코딩은 바이너리 또는 텍스트 데이터가 있는 바이트를 ASCII 문자로 변환하는 데 사용됩니다. 인코딩은 텍스트 전용 시스템을 통해 데이터를 전송하거나 처리할 때 데이터가 손상되는 것을 방지합니다. 이 기사에서는 Base64 인코딩 및 디코딩과 이를 사용하여 바이너리 및 텍스트 데이터를 인코딩 및 디코딩하는 방법에 대해 설명합니다.

Base64 인코딩:
바이트를 ASCII 문자로 변환하는 유형입니다. 사용 가능한 Base64 문자 목록은 아래에 나와 있습니다.

  • 대문자 26자
  • 소문자 26자
  • 10개의 숫자
  • + 및 / 새 줄

각 Base64 문자는 6비트의 데이터를 나타냅니다. 명백한 이유로 암호화를 위한 것이 아니라는 점에 유의하는 것도 중요합니다.
문자열을 Base64 문자로 변환하려면 다음 단계를 따라야 합니다.

  • 문자열에 있는 각 문자의 ASCII 값을 가져옵니다.
  • ASCII 값에 해당하는 8비트 이진수를 계산합니다.
  • 숫자를 다시 그룹화하여 8비트 문자 청크를 6비트 청크로 변환합니다.
  • 6비트 이진 그룹을 해당하는 십진수 값으로 변환합니다.
  • Base64 인코딩 테이블을 사용하여 각 10진수 값에 대한 해당 Base64 값을 정렬합니다.

아래 이미지는 Base64 인코딩 테이블을 제공합니다.

이미지 출처: 위키피디아

Python을 사용하여 문자열 인코딩:
Python에서는 base64 모듈을 사용하여 데이터를 인코딩하고 디코딩합니다. 먼저 문자열은 바이트형 객체로 변환된 다음 base64 모듈을 사용하여 인코딩됩니다. 아래 예는 인코딩 문자열의 구현이 base64 문자가 아님을 보여줍니다.

예:




import> base64> > sample_string> => 'GeeksForGeeks is the best'> sample_string_bytes> => sample_string.encode(> 'ascii'> )> > base64_bytes> => base64.b64encode(sample_string_bytes)> base64_string> => base64_bytes.decode(> 'ascii'> )> > print> (f> 'Encoded string: {base64_string}'> )>

산출:

Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== 

Python을 사용하여 문자열 디코딩:
Base64 문자열을 디코딩하는 것은 인코딩과 정반대입니다. 먼저 Base64 문자열을 인코딩되지 않은 데이터 바이트로 변환한 다음 바이트열류 객체를 문자열로 변환합니다. 아래 예에서는 위의 인코딩 문자열 출력 예를 디코딩하는 방법을 보여줍니다.

예:




import> base64> > > base64_string> => ' R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA =='> base64_bytes> => base64_string.encode(> 'ascii'> )> > sample_string_bytes> => base64.b64decode(base64_bytes)> sample_string> => sample_string_bytes.decode(> 'ascii'> )> > print> (f> 'Decoded string: {sample_string}'> )>

산출:

Decoded string: GeeksForGeeks is the best