Bonjour.

Le résultat normal fournit par lorsqu'on exécute le Script avec la commande -k (script.py -d clé.txt -o trouvé.txt -k) sachant que le fichier clé.txt contient un ou plusieurs
Private Key qui est chargé avec la commande -d et -k pour trouver leur Private Key soit la même Clé
Privée disponible au départ dans le Fichier clé.txt puis enregistré avec la commande -o :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
2017-11-16 12:14:09,122 INFO   line 09   dict word, received, wallet address, private address, current balance 
2017-11-16 12:14:23,125 INFO   line 1    9749bahhjkk21421,02,1K565G8,9749bahhjkk21421,0245
--------------------------------------------------------------------------------------------------------------------
Code concernant la Commande -k et la nouvelle Commande -a :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
parser.add_argument('-k', action='store_true', dest='is_private_key', default=False,
                        help='treat each word as a hex or wif encoded private key')
 
parser.add_argument('-a', action='store_true', dest='is_public_key', default=False,
                        help='Found a Private Key throught a Public Address')

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Wallet:
    def __init__(self, passphrase, is_private_key = False):
        self.passphrase = passphrase
        self.address = None
        self.public_key = None
        self.private_key = None
        try:
            if is_private_key:
                keypair = ChegKeypair.from_private_key(self.passphrase.encode('ascii'))
 
#Comment ajouter la nouvelle condition de "is_public_key" ????
#			else if is_public_key:
#	                keypair = ??????????
 
            else:
                keypair = ChegKeypair.from_passphrase(self.passphrase)
            self.address = keypair.address()
            self.public_key = keypair.public_key()
            self.private_key = keypair.private_key()
        except Exception as e:
            logging.warning(u"Failed to generate keypair for passphrase '{}'. Error: {}".format(passphrase, e.args))
            raise

En gros, comment inverser la Commande -k à travers une nouvelle Commande -a pour qu'elle (pour que la nouvelle commande -a)
trouve la Clé Privée correspondante à partir des Clés Publiques (disponible dans le Fichier clé.txt chargé avec la Commande -d)
contrairement à la Commande -k qui trouvait les Clés Privée à partir des mêmes Clés Privées chargé avec la Commande -d dans le Fichier clé.txt ???

Comment redéfinir la nouvelle condition visible à la Ligne 12 et 13 du Code (partie en commentaires que je viens d'ajouter moi-même)
ci-dessus pour que "keypair" corresponde à la nouvelle commande -a qui doit afficher (trouver) les clés Privées à partir des clés publiques ???

Sans oublier qu'il me faudra réécrire le passage ci-dessous pour qu'il prenne aussi
en compte l'argument "is_public_key" qui correspond à ma Nouvelle Commande -a ???

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 # Create wallet
        try:
            wallet = Wallet(dictionary_word, args.is_private_key)
        except Exception as e:
            continue
Et enfin, Comment définir une nouvelle variable "wallet_privatekey" pour que celle-ci soit égale à la "wallet.private_key (soit la Private Key)"
de la "wallet.address" se trouvant dans le fichier clé.txt ???

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
		# Get Private Key Address	
		wallet_privatekey = ????????
Afin que le résultat final soit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
2017-11-16 12:14:09,122 INFO   line 09   dict word, received, wallet address, private address, current balance, Public Private_Key
2017-11-16 12:14:23,125 INFO   line 1  1K565G8, 02, 1K565G8, 9749bahhjkk21421, 0245, ???

Contrairement au résultat de la commande -k qui fournissait à la Valeur du "dict word" la même valeur de la "private address"
(9749bahhjkk21421 sur l'exempe ci-dessus) mais "1K565G8" pour la nouvelle commande -a.

pour que les ??? qui devait normalement correspondre à "Public Private_Key" soit forcément aussi égal à "9749bahhjkk21421" lorsqu'on exécute le Script avec la Nouvelle Commande -a.