Python에서 16 진수를 바이트로 변환

Rayven Esplanada 2023년1월30일
  1. 16 진수 값 초기화
  2. Python에서bytes.fromhex()를 사용하여 16 진수를 바이트로 변환
  3. unhexlify 모듈을 사용하여 Python에서 16 진수를 바이트로 변환
Python에서 16 진수를 바이트로 변환

이 튜토리얼은 파이썬에서 16 진수 값을 바이트 리터럴로 변환하는 방법을 소개합니다.

16 진수 또는 16 진수 값은 10 진수 값의 일반적인 10 개 기호 대신 16 개 기호로 구성된 숫자를 나타냅니다. 0에서 9까지의 숫자와 a에서 e까지의 문자는 16 개의 16 진수 기호를 구성합니다.

예를 들어 숫자 1000의 16 진수 변환은 3E8입니다.

16 진수 값 초기화

문자열을 이용하여 16진수 값을 생성하고 binascii 모듈의 함수인 hexlify() 함수를 사용하여 A quick brown fox라는 문구를 hex 값으로 변환해 봅시다.

또한 문자열을 16 진수로 변환하려면 문자열을 16 진수로 변환 할 수 있도록 바이트로 변환해야합니다.

import binascii

str_val = "A quick brown fox".encode("utf-8")
hex_val = binascii.hexlify(str_val).decode("utf-8")

print(hex_val)

출력:

4120717569636b2062726f776e20666f78

이제 문자열을 16 진수로 성공적으로 변환했습니다. 16 진수를 바이트로 변환하는 방법을 계속 진행하겠습니다.

Python에서bytes.fromhex()를 사용하여 16 진수를 바이트로 변환

bytes.fromhex()함수는 단일 16 진수 값 인수를 받아 바이트 리터럴로 변환합니다.

이전 결과에서 16 진수 값을 가져 와서fromhex()를 사용하여 바이트 리터럴로 변환합니다.

hex_val = "4120717569636b2062726f776e20666f78"

print(bytes.fromhex(hex_val))

출력:

Byte value:  b'A quick brown fox'

결과는 값이 바이트 리터럴임을 지정하기 위해 문자 b가 접두사 인 16 진수로 변환 된 구문 인 bytes리터럴을 출력합니다.

unhexlify 모듈을 사용하여 Python에서 16 진수를 바이트로 변환

binascii Python 모듈에는 바이너리 및 ASCII 작업을위한 효율적인 유틸리티 함수가 포함되어 있습니다. unhexlify()는 16 진수 값을 바이트 리터럴로 변환하는binascii 모듈 내의 함수입니다.

ASCII가 아닌 특수 문자로 새 예제를 초기화 한 다음 16 진수 값으로 변환 해 보겠습니다. 예를 들면 a quick brown fox라는 문구의 그리스어 번역입니다.

import binascii
from binascii import unhexlify

str_val = "Μια γρήγορη καφέ αλεπού".encode(
    "utf-8"
)  # A quick brown fox in Greek translation
hex_val = binascii.hexlify(str_val).decode("utf-8")

print("String value: ", str_val.decode("utf-8"))
print("Hexadecimal: ", hex_val)
print("Byte value: ", unhexlify(hex_val))

출력:

String value:  Μια γρήγορη καφέ αλεπού
Hexadecimal:  ce9cceb9ceb120ceb3cf81ceaeceb3cebfcf81ceb720cebaceb1cf86cead20ceb1cebbceb5cf80cebfcf8d
Byte value:  b'\xce\x9c\xce\xb9\xce\xb1 \xce\xb3\xcf\x81\xce\xae\xce\xb3\xce\xbf\xcf\x81\xce\xb7 \xce\xba\xce\xb1\xcf\x86\xce\xad \xce\xb1\xce\xbb\xce\xb5\xcf\x80\xce\xbf\xcf\x8d'

이제 16 진수 값을 바이트로 성공적으로 변환했습니다.

이 기사에서는fromhex()binascii.unhexlify()를 사용하여 파이썬에서 16 진수 값을 바이트 리터럴로 변환하는 방법에 대해 설명했습니다. 소스 코드에 임포트를 추가하지 않으려면fromhex()가 바람직합니다. 그렇지 않으면 두 함수가 동일한 출력을 제공합니다.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python Bytes

관련 문장 - Python Hex