Untitled

 avatar
unknown
plain_text
a month ago
1.9 kB
3
Indexable
import os
import hashlib
import base58
from ecdsa import SECP256k1, SigningKey

# Fonction pour générer une clé Litecoin privée et son adresse
def generate_litecoin_key():
    # Générer une clé privée aléatoire (32 octets)
    private_key = os.urandom(32)
    
    # Créer une clé publique à partir de la clé privée
    sk = SigningKey.from_string(private_key, curve=SECP256k1)
    public_key = sk.get_verifying_key().to_string()
    
    # Calculer l'adresse Litecoin (en utilisant le même processus que Bitcoin)
    sha256_pubkey = hashlib.sha256(public_key).digest()
    ripemd160_pubkey = hashlib.new('ripemd160', sha256_pubkey).digest()
    
    # Ajouter le préfixe Litecoin (0x30 pour Litecoin mainnet)
    versioned_payload = b'\x30' + ripemd160_pubkey
    
    # Calculer le checksum (les 4 premiers octets de SHA256(SHA256(versioned_payload)))
    checksum = hashlib.sha256(hashlib.sha256(versioned_payload).digest()).digest()[:4]
    
    # Générer l'adresse finale Litecoin
    address = base58.b58encode(versioned_payload + checksum).decode('utf-8')
    
    # Retourner la clé privée et l'adresse dans le format requis
    private_key_hex = private_key.hex()
    return private_key_hex, address

# Fonction principale pour générer les clés
def main():
    # Demander combien de clés privées générer
    num_keys = int(input("Combien de clés privées voulez-vous générer ? "))
    
    # Ouvrir le fichier pour y enregistrer les clés
    with open("case.txt", "w") as file:
        for _ in range(num_keys):
            private_key, address = generate_litecoin_key()
            # Écrire la clé privée et l'adresse dans le fichier
            file.write(f"Clé : {private_key} | Adresse : {address}\n")
    
    print(f"{num_keys} clés et adresses Litecoin ont été générées et enregistrées dans 'case.txt'.")

if __name__ == "__main__":
    main()
Leave a Comment