Simply python library for encrypting private keys using character shuffle method.
Supports any blockchains, but is guaranteed to mask only EVM/Aptos private keys.
It checks the correctly entered password by checking the case of the last 2 characters of the key.
Accepts wallets in the format: address:key or key
pip install key-shuffler
Открыть директорию:
cd C:\...\key_shuffler
Поместить кошели в \examples\wallets.txt в формате private_key или address:private_key
Запустить скрипт командой:
python examples\file_encryptor.py
В общем случае: найти в .py файлах софта (чаще всего в config.py/settings.py/main.py) получение КОШЕЛЬКОВ из .txt файла путем поиска по коду по ключевой фразе "with open" (синхронный код) либо "with aiofiles.open" (асинхронный код)
Для синхронного кода:
Найти:
with open(*файл с кошельками*, 'r') as file:
........
Добавить выше строкой "from key_shuffler import openEncrypted" и заменить "open" на "openEncrypted"
from key_shuffler import openEncrypted
with openEncrypted(*файл с кошельками*, 'r') as file:
........
При этом необходимо не накосячить с отступами текста, оставить такими же как были.
Пример. Было:
with open("accounts.txt", "r") as file:
ACCOUNTS = [row.strip() for row in file]
Стало:
from key_shuffler import openEncrypted
with openEncrypted("accounts.txt", "r") as file:
ACCOUNTS = [row.strip() for row in file]
Для асинхронного кода:
Найти:
async with aiofiles.open(*файл с кошельками*, 'r') as file:
........
Добавить выше строкой "from key_shuffler import aiofilesOpenEncrypted" и заменить "aiofiles.open" на "aiofilesOpenEncrypted"
from key_shuffler import aiofilesOpenEncrypted
async with aiofilesOpenEncrypted(*файл с кошельками*, 'r') as file:
........
При этом необходимо не накосячить с отступами текста, оставить такими же как были.
Пример. Было:
async with aiofiles.open("accounts.txt", "r") as file:
ACCOUNTS = [row.strip() for row in file]
Стало:
from key_shuffler import aiofilesOpenEncrypted
async with aiofilesOpenEncrypted("accounts.txt", "r") as file:
ACCOUNTS = [row.strip() for row in file]
from key_shuffler import KeyShuffler
a) The password is already set in the variable:
private_key = "........"
passphrase = "Hello world"
shuffler = KeyShuffler(passphrase)
encrypted_key = shuffler.encrypt_private_key(private_key)
decrypted_key = shuffler.decrypt_private_key(encrypted_key)
b) The password will be specified by the user via the terminal:
private_key = "......."
shuffler = KeyShuffler()
encrypted_key = shuffler.encrypt_private_key(private_key)
decrypted_key = shuffler.decrypt_private_key(encrypted_key)
Fast sync/async encrypt: using the context manager:
from key_shuffler import openEncrypted
with openEncrypted(".....", 'r') as file:
...
from key_shuffler import aiofilesOpenEncrypted
async with aiofilesOpenEncrypted(".....", 'r') as file:
...
Default:
shuffler = KeyShuffler()
wallets = shuffler.encrypt_from_file(file_wallets)
wallets = shuffler.decrypt_from_file(file_wallets)
shuffler.encrypt_file_to_file(file_wallets, file_encrypted_wallets)
shuffler.decrypt_file_to_file(file_encrypted_wallets, file_wallets)
If the password is incorrect, there will be an error and you will be asked to enter it again: