Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Como Gerar e Converter Chaves Casascius Mini com Python

Como Gerar e Converter Chaves Casascius Mini com Python

Publicado por em


@CanalQb no YouTube


@CanalQb

Como Gerar e Converter Chaves Casascius Mini com Python


Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.



Conversão e Geração de Chaves Casascius Mini com Python

Aprenda neste artigo como gerar e converter chaves privadas no formato hexadecimal (64 caracteres) para versões compactas conhecidas como Casascius Mini nos comprimentos de 30, 22 e 20 caracteres, usando codificação Base58. O código é implementado em Python com foco em segurança, validação e compatibilidade com práticas modernas de criptografia.

O que é Base58?

A Base58 é uma codificação alfanumérica usada amplamente em carteiras de criptomoedas para tornar chaves e endereços mais legíveis e menos suscetíveis a erros humanos. Ela exclui caracteres visivelmente ambíguos como "0", "O", "I", e "l".

Entendendo Casascius Mini

Casascius Mini é um formato reduzido de representação de chaves privadas. Ele foi criado com o objetivo de tornar mais fácil a manipulação de chaves privadas em papel ou dispositivos físicos, como moedas de Bitcoin. Os comprimentos de saída podem variar de 20 a 30 caracteres com codificação Base58.

Funções Python para Conversão

Biblioteca Utilizada

Este script usa a biblioteca hashlib para aplicar a função SHA-256 sobre os dados hexadecimais. Essa função reduz a chave original para um hash menor e mais seguro para codificação posterior.

import hashlib

BASE58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'

def hex_to_base58(hex_string, comprimento=30):
    """Converte uma string hexadecimal para base58 com comprimento ajustável"""
    num = int(hex_string, 16)
    base58_string = ""

    while num > 0:
        num, remainder = divmod(num, 58)
        base58_string = BASE58[remainder] + base58_string

    while len(base58_string) < comprimento:
        base58_string = BASE58[0] + base58_string

    return base58_string[:comprimento]

def base58_to_hex(base58_string):
    """Converte uma chave Casascius Mini (base58) para hexadecimal"""
    num = 0
    for char in base58_string:
        num *= 58
        num += BASE58.index(char)

    hex_string = hex(num)[2:].zfill(64)
    return hex_string

def hex64_to_hex32(hex64):
    """Aplica SHA256 para gerar uma chave de 32 bytes"""
    sha256_hash = hashlib.sha256(bytes.fromhex(hex64)).hexdigest()
    return sha256_hash[:32]

Gerador e Conversor de Chaves Casascius Mini

def GenerateKeys():
    print("Escolha o tipo de entrada:")
    print("1 - Privatekey (hexadecimal)")
    print("2 - Casascius Mini 30")
    print("3 - Casascius Mini 22")
    print("4 - Casascius Mini 20")

    tipo_chave = input("Digite o número da opção desejada: ").strip()

    if tipo_chave == "1":
        chave_privada_original_hex = input("Digite a chave privada no formato hexadecimal (64 caracteres): ").strip().lower()

        if len(chave_privada_original_hex) < 64:
            chave_privada_original_hex = chave_privada_original_hex.zfill(64)
    
        if len(chave_privada_original_hex) != 64:
            print("Erro: A chave hexadecimal deve ter exatamente 64 caracteres.")
            return

        print("Chave Privada Original (hex64):", chave_privada_original_hex)

        chave_privada_red = hex64_to_hex32(chave_privada_original_hex)
        print("Chave Privada Reduzida (hex32):", chave_privada_red)

        casascius_30 = hex_to_base58(chave_privada_red, comprimento=30)
        print("Casascius Mini 30:", casascius_30)

        casascius_22 = hex_to_base58(chave_privada_red, comprimento=22)
        print("Casascius Mini 22:", casascius_22)

        casascius_20 = hex_to_base58(chave_privada_red, comprimento=20)
        print("Casascius Mini 20:", casascius_20)

    elif tipo_chave in ["2", "3", "4"]:
        comprimento = 30 if tipo_chave == "2" else 22 if tipo_chave == "3" else 20
        casascius_input = input(f"Digite a Casascius Mini ({comprimento} caracteres): ").strip()

        if len(casascius_input) != comprimento:
            print(f"Erro: A chave Casascius Mini deve ter exatamente {comprimento} caracteres.")
            return

        chave_privada_original_hex = base58_to_hex(casascius_input)
        print("Chave Privada Original (hex64):", chave_privada_original_hex)

        chave_privada_red = hex64_to_hex32(chave_privada_original_hex)
        print("Chave Privada Reduzida (hex32):", chave_privada_red)

        casascius_convertido = hex_to_base58(chave_privada_red, comprimento=comprimento)
        print(f"Casascius Mini {comprimento}:", casascius_convertido)

        chave_privada_descompactada_hex = base58_to_hex(casascius_convertido)
        assert chave_privada_original_hex == chave_privada_descompactada_hex, \
            "Erro: A chave descompactada não corresponde à chave original."
        print("✅ A chave privada descompactada corresponde à chave original.")

    else:
        print("Opção inválida. Por favor, digite 1, 2, 3 ou 4.")

GenerateKeys()

Exemplo de Entrada e Saída

Se você digitar a seguinte chave hexadecimal como entrada:

4d3c9e887d884b1c8a3adbd8d8f9a999c41a3c9e887d884b1c8a3adbd8d8f9a99

O sistema aplicará SHA-256 e transformará essa chave em uma versão de 32 caracteres, que será convertida em vários formatos Casascius Mini. Isso facilita a exportação ou impressão segura de chaves privadas.

Considerações Finais de Segurança

Manipular chaves privadas exige responsabilidade. Nunca compartilhe suas chaves em ambientes inseguros e evite salvar arquivos sem criptografia. Teste seus sistemas em ambientes isolados antes de utilizá-los com fundos reais.

Referências e Sites Oficiais

Aviso: Este artigo é apenas para fins educacionais e técnicos. Cada indivíduo é responsável por analisar o funcionamento e riscos antes de aplicar este tipo de ferramenta. Não invista ou utilize criptografia onde você não compreenda totalmente o processo envolvido.

@CanalQb

Marcadores: Airdrop Blogger Cripto IA Jogos Python Script Sistemas Tutorial

© junho 30, 2025 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários