Python에서 Hex를 Base64로 변환

Muhammad Maisam Abbas 2023년6월21일
  1. Python의 codecs 모듈을 사용하여 HEX를 BASE64로 변환
  2. Python의 base64 모듈을 사용하여 HEX를 BASE64로 변환
  3. Python의 binascii 모듈을 사용하여 HEX를 BASE64로 변환
  4. Python2에서 HEX를 BASE64로 변환
Python에서 Hex를 Base64로 변환

이 튜토리얼에서는 Python에서 16진수를 base64로 변환하는 방법에 대해 설명합니다.

Python의 codecs 모듈을 사용하여 HEX를 BASE64로 변환

Python의 codecs 모듈encode()decode() 메서드를 제공하여 서로 다른 텍스트 인코딩 형식 간에 변환합니다.

encode() 함수는 두 개의 매개변수를 사용합니다. 입력 문자열 및 해당 문자열을 인코딩하는 데 필요한 형식. 이 encode() 함수의 반환 유형은 두 번째 매개변수에 지정된 형식으로 인코딩된 문자열입니다.

decode() 함수는 두 개의 매개변수만 사용합니다. 인코딩된 입력 문자열 및 입력 문자열이 인코딩된 형식. decode() 함수는 두 번째 매개변수에 지정된 형식에 따라 디코딩된 문자열을 반환합니다.

16진수 문자열을 base64 문자열로 인코딩하려면 먼저 hex를 두 번째 매개변수로 지정하여 decode() 함수를 사용하여 해당 16진수 문자열을 일반 문자열로 디코딩합니다. 그런 다음 base64를 두 번째 매개변수로 지정하여 encode() 함수로 이전 작업의 출력을 인코딩합니다.

다음 코드 스니펫은 Python의 codecs 모듈을 사용하여 16진수 문자열을 base64 문자열로 인코딩하는 데 필요한 단계를 자세히 설명합니다.

import codecs

hex_string = "10000000000002ae"
b64_string = codecs.encode(codecs.decode(hex_string, "hex"), "base64").decode()
print(b64_string)

출력:

EAAAAAAAAq4=

위의 코드에서 codecs 모듈을 사용하여 16진수 문자열 10000000000002ae를 base64 문자열 EAAAAAAAAq4=로 인코딩합니다.

Python의 base64 모듈을 사용하여 HEX를 BASE64로 변환

서로 다른 텍스트 인코딩 형식 간에 변환하는 Python의 또 다른 유용한 모듈은 base64입니다. base64 모듈은 이 작업을 위한 b64encode()b64decode() 기능을 제공합니다.

b64encode() 함수는 바이트 문자열을 입력 매개변수로 사용하여 이를 base64 형식으로 변환하고 base64 인코딩된 문자열을 반환합니다. 마찬가지로 b64decode() 함수는 base64로 인코딩된 문자열을 가져와 바이트 문자열로 변환하고 디코딩된 바이트 문자열을 반환합니다.

이 특정 문제의 경우 먼저 bytes.fromhex() 함수를 사용하여 입력 문자열을 바이트 문자열로 변환해야 합니다. 그런 다음 b64encode() 함수를 사용하여 해당 바이트 문자열을 base64 문자열로 인코딩합니다.

다음 코드 스니펫은 Python에서 base64 모듈을 사용하여 16진수 문자열을 base64 문자열로 인코딩하는 방법을 보여줍니다.

from base64 import b64encode, b64decode

hex_string = "10000000000002ae"
b64_string = b64encode(bytes.fromhex(hex_string)).decode()
print(b64_string)

출력:

EAAAAAAAAq4=

위의 코드에서 base64 모듈을 사용하여 16진수 문자열 10000000000002ae를 base64 문자열 EAAAAAAAq4=로 인코딩합니다.

Python의 binascii 모듈을 사용하여 HEX를 BASE64로 변환

또한 Python의 binascii 모듈을 사용하여 서로 다른 텍스트 인코딩 형식 간에 변환할 수 있습니다. binascii 모듈은 이 시나리오에서 사용할 수 있는 unhexlify()b2a_base64()와 같은 기능을 제공합니다.

unhexlify() 함수는 16진수 문자열을 입력 매개변수로 사용하여 바이트 문자열로 변환하고 결과를 반환합니다. b2a_base64() 함수는 바이트 문자열을 입력 매개변수로 사용하여 이를 base64 문자열로 변환하고 결과를 반환합니다.

특정 문제에서는 먼저 unhexlify() 함수를 사용하여 16진수 문자열을 바이트 문자열로 변환한 다음 b2a_base64() 함수를 사용하여 이전 작업의 결과를 base64 문자열로 변환해야 합니다.

다음 코드 예제는 binascii 모듈을 사용하여 Python에서 16진수 문자열을 base64로 변환하는 방법을 보여줍니다.

from binascii import unhexlify, b2a_base64

hex_string = "10000000000002ae"
b64_string = b2a_base64(unhexlify(hex_string))
print(b64_string)

출력:

EAAAAAAAAq4=

위의 코드에서 binascii 모듈을 사용하여 16진수 문자열 10000000000002ae를 base64 문자열 EAAAAAAAAq4=로 인코딩합니다. 위에서 설명한 모든 방법 중에서 binascii 방법이 가장 간단하며 이를 구현하기 위해 최소한의 코드를 작성해야 합니다.

Python2에서 HEX를 BASE64로 변환

반면 기본적으로 16진수 문자열과 base64 문자열을 모두 지원하는 Python2로 작업하는 경우 필요한 코드의 양을 크게 줄일 수 있습니다. 다음 코드 스니펫은 Python2에서 16진수 문자열을 base64 문자열로 변환하는 방법을 보여줍니다.

hex_string = "10000000000002ae"
b64_string = hex_string.decode("hex").encode("base64")
print(b64_string)

출력:

EAAAAAAAAq4=

Python2는 기본적으로 16진수 및 base64 문자열을 지원하기 때문에 위 코드에서 모듈을 가져올 필요가 없습니다. 먼저 decode("hex") 함수를 사용하여 16진수 문자열을 바이트 문자열로 변환한 다음 encode("base64") 함수를 사용하여 출력을 base64로 인코딩했습니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Python Hex