Converter Byte em Hex em Python

Rayven Esplanada 30 janeiro 2023
  1. Inicializar um Byte Literal em Python
  2. Utilize o hex() Método para Converter um Byte em Hex em Python
  3. Utilize o módulo binascii para converter um Byte em Hex em Python
Converter Byte em Hex em Python

Este tutorial irá introduzir como converter bytes em hexadecimal em Python.

O tipo de dados de bytes em Python é uma sequência de bytes que pode ser armazenada no disco como uma variável, que pode então ser codificada e descodificada. São declarados como uma string mas prefixados pelo carácter b. Os bytes aceitam caracteres Unicode especiais prefixados com \x.

Inicializar um Byte Literal em Python

Daremos um exemplo de um byte literal, declararemos uma string com caracteres especiais, e utilizaremos a função encode('utf-8') para convertê-lo para um byte literal.

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print(byte_var)

Resultado:

b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'

A saída de encode() resultará num byte literal prefixado com o carácter b e os caracteres especiais convertidos em símbolos Unicode.

Agora a declaração de um byte está coberta, vamos prosseguir com a conversão de um byte em hexadecimal.

Utilize o hex() Método para Converter um Byte em Hex em Python

O método hex() introduzido a partir de Python 3.5 converte-o numa string hexadecimal.

Neste caso, o argumento será de um tipo de dados byte a ser convertido em hexadecimal.

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", byte_var.hex())

Resultado:

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274

Utilize o módulo binascii para converter um Byte em Hex em Python

O módulo binascii Python contém funções utilitárias eficientes para operações binárias e ASCII.

Dentro deste módulo, existe uma função hexlify() que retorna um valor hexadecimal do argumento dado, que é um valor binário.

Neste exemplo, o argumento será a variável byte a ser convertida em hexadecimal.

import binascii

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", binascii.hexlify(byte_var))

Resultado:

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  b'ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274'

Note-se que o valor de retorno de hexlify() retorna um byte literal, ao contrário de hex(), que retorna uma string convertida.

Se quiser converter o resultado numa string, utilize a função decode('utf-8').

import binascii

byte_var = "γιαούρτι - yogurt".encode("utf-8")

print("Byte variable: ", byte_var)
print("Hexadecimal: ", "" + binascii.hexlify(byte_var).decode("utf-8"))

Resultado:

Byte variable:  b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal:  ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274

Agora o resultado hexadecimal é convertido numa string a partir de um byte literal.

Em resumo, cobrimos 2 métodos de conversão de um byte em hexadecimal em Python. A forma mais simples é utilizar a função integrada hex() para um byte literal. Alternativamente, a função hexlify() do módulo binascii também pode ser utilizada para produzir a mesma saída.

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

Artigo relacionado - Python Bytes

Artigo relacionado - Python Hex