Conversão de Hexadecimal para Binário e Endereços com Python
Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.
Conversão de Hexadecimal para Binário e Endereços com Python
Este artigo apresenta um script em Python para converter valores hexadecimais em binários de 64 bits e, simultaneamente, gerar endereços privados usando a biblioteca bit. É uma ferramenta útil em criptografia, geração de carteiras de blockchain e verificação de entropia em sistemas binários.
🔧 Objetivo do Código
O script realiza duas tarefas principais:
- Transformar sequências hexadecimais em binários de 64 bits com preenchimento (zfill).
- Gerar endereços privados a partir dos valores convertidos, para uso em criptomoedas.
📦 Dependências
bit: biblioteca para manipulação de chaves privadas de Bitcoin (GitHub oficial).- Bibliotecas padrão:
os,subprocess,gc.
🧩 Função agrupar_hex
A função agrupar_hex(hex_string) recebe uma string hexadecimal e gera:
- Tamanhos de grupo possíveis (1 a n caracteres).
- Conversão de cada grupo para decimal.
- Conversão para binário de 64 bits (
bin_zfill64).
O resultado é um dicionário com cada tamanho apontando uma lista de objetos contendo:
hex: valor original do grupo.dec: valor decimal.bin_zfill64: valor binário com zeros à esquerda.
🔁 Processamento de Múltiplos Valores
No bloco principal, uma lista extensa de strings hexadecimais é processada. Para cada valor:
- Chamamos
agrupar_hex()para obter os subgrupos. - Para cada subgrupo:
- Geramos uma chave privada com
PrivateKey.from_bytes(bytes.fromhex(item['hex'])). - Extraímos o endereço com
chave.address. - Contamos quantos bits “1” existem no binário com
count('1'). - Exibimos o formato:
Grupos de {tamanho}: '{hex}';'{dec}';'{bin_zfill64}';{contagem};{endereço}. - Exceções são silenciadas para garantir robustez em casos inválidos.
📋 Código Completo
from bit import PrivateKey
import gc
def agrupar_hex(hex_string):
resultados = {}
comprimento = len(hex_string)
for tamanho in range(1, comprimento + 1):
grupos = [hex_string[i:i + tamanho] for i in range(0, comprimento, tamanho)]
grupos_convertidos = []
for g in grupos:
try:
decimal = int(g, 16)
binario = bin(decimal)[2:].zfill(64)
grupos_convertidos.append({'hex': g, 'dec': decimal, 'bin_zfill64': binario})
except ValueError:
grupos_convertidos.append({'hex': g, 'dec': None, 'bin_zfill64': None})
resultados[tamanho] = grupos_convertidos
return resultados
if __name__ == "__main__":
valor_hex = [
"1", "11720c4f018d51b8cebba8", "122fca143c05", /* lista completa omitida por brevidade */
"f7051f27b09112d4", "fc07a1825367bbe"
]
for hex_value in valor_hex:
resultados = agrupar_hex(hex_value)
for tamanho, grupos in resultados.items():
for item in grupos:
try:
chave = PrivateKey.from_bytes(bytes.fromhex(item['hex']))
endereco = chave.address
somabin = item['bin_zfill64'].count('1')
print(f"Grupos de {tamanho}: '{item['hex']}';'{item['dec']}';'{item['bin_zfill64']}';{somabin};{endereco}")
except Exception:
pass
finally:
gc.collect()
✅ Aplicações Práticas
- Validação e conversão de valores hexadecimais em binários completos (64 bits).
- Geração de endereços de criptomoedas para estudos ou testes.
- Análise de entropia de dados em diferentes tamanhos de chunk.
💡 Exemplos de Saída
Veja exemplos de saída real (resumido):
Grupos de 1: '1';'1';'000...01';1;1A1zP1... Grupos de 2: '11';'17';'000...10111';3;1BvBMSE... Grupos de 3: '117';'279';'000...100010111';5;1BoatSL... ...
📚 Referências Oficiais
Este conteúdo é destinado a fins educacionais. Ao trabalhar com dados criptográficos ou financeiros, avalie sempre sua necessidade específica e evite usar chaves ou endereços ativos sem o devido entendimento.

Comentários
Comente só assim vamos crescer juntos!