Восстановление кошелька binance web3 с использованием пароля, QR-кода (грубая сила)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Восстановление кошелька binance web3 с использованием пароля, QR-кода (грубая сила)

Сообщение Anonymous »

Я создал кошелек Web3 в Binance. я сделал резервную копию этого кошелька на Google Диске. я также сохраняю этот кошелек в QR-коде.
во время резервного копирования мне приходится зашифровать (из соображений безопасности binance) свой кошелек с помощью пароля.
Проблема
Я создал свой пароль, используя разные слова, теперь я забыл порядок слов, который использовал при создании пароля. у меня есть 16 слов, которые я мог бы использовать при создании пароля, и я уверен, что я использовал не более 8 слов (не символов), поэтому длина пароля может составлять от 25 до 30 символов, а слова можно использовать только один раз.
Итак, возможная комбинация = 16 * 15 * 14 * 13 * 12 * 11 * 10 * 9 = 518918400
Список слов, например (это не настоящие слова, а просто примеры слов) = ['стул', 'мальчик', '123456789', '987654321, '@', '!', «привет», «это», «есть», «все», «слова»]
предсказанные пароли
  • chairboy@hello!thisareall
  • chairboy@hello!thisarewords
  • chairboy@hello!thisarehello
    и т. д.< /li>
если я создам все комбинации паролей, это будет около 518918400, но проблема в том, что я не могу ввести весь этот пароль в binance приложение, если я попробую 5 раз, после этого я автоматически выйду из binance. и мне приходится повторять этот процесс снова и снова, что не является практичным подходом.
поэтому я думаю, смогу ли я использовать Python для расшифровки этого на моем локальном компьютере, чтобы найти правильный пароль для входа в систему в моей учетной записи Web3.
это данные qr-кода, я не знаю, как я могу использовать свой пароль для расшифровки этого?
данные реального кошелька

Код: Выделить всё

{"iv":"m9y8EQlmxfswQoMC","salt":"J2h/DDfFLmWv6Ec0fb3jC6aFQ2tLShYnJUOGmIsiodE=","secrets":"AbDfnru4Z72tdZqizS1TeGqpXiucrm6nZzfJ9FmNMrxmqAM7YVHR8aaz3xy+9Y/TDaU6C1OMi4nEnwycJOGts3rxNl/id0nwMElxctFvUxlAhaL2fb3BCseDUVTU1ap2kF2etq5jkXmtcfcR6JHuZpiiPWHWGK/aCxSc7yHVdZzDm5jTAOGKM7XpZjwafz4cupY31Frrso6xF/VgrMSaXQ==","version":2}
Я использовал Chatgpt для кодирования, я пробовал много вещей, но он не работает.

Код: Выделить всё

from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import hashlib
from base64 import b64decode
from cryptography.hazmat.primitives import padding

# Base64 decode function
def safe_b64decode(b64_string):
return b64decode(b64_string)

# Your wallet JSON data (Base64 encoded values)
iv = safe_b64decode("m9y8EQlmxfswQoMC")  # 16 bytes (128 bits)
salt = safe_b64decode("J2h/DDfFLmWv6Ec0fb3jC6aFQ2tLShYnJUOGmIsiodE=")  # 32 bytes (256 bits)
secrets = safe_b64decode("AbDfnru4Z72tdZqizS1TeGqpXiucrm6nZzfJ9FmNMrxmqAM7YVHR8aaz3xy+9Y/TDaU6C1OMi4nEnwycJOGts3rxNl/id0nwMElxctFvUxlAhaL2fb3BCseDUVTU1ap2kF2etq5jkXmtcfcR6JHuZpiiPWHWGK/aCxSc7yHVdZzDm5jTAOGKM7XpZjwafz4cupY31Frrso6xF/VgrMSaXQ==")  # Encrypted data

# The password used to create the wallet (replace with the actual password)
password = 'mypassword'  # Replace this with the actual password

# Step 1: Deriving the key using PBKDF2HMAC (PBKDF2 with HMAC for key derivation)
key_derivation = PBKDF2HMAC(
algorithm="sha256",  # Use "sha256" string directly
salt=salt,  # Salt provided in the wallet
iterations=100000,  # 100,000 iterations (standard in Ethereum wallets)
length=32,  # Length for AES-256 key (32 bytes)
backend=default_backend()
)

# Derive the key from the password and salt
encryption_key = key_derivation.derive(password.encode())

# Step 2: AES Decryption (AES-CBC mode)
cipher = Cipher(algorithms.AES(encryption_key), modes.CBC(iv), backend=default_backend())
decryptor = cipher.decryptor()

# Step 3: Decrypt the secrets field (the encrypted data)
decrypted_data = decryptor.update(secrets) + decryptor.finalize()

# Step 4: Unpadding the decrypted data (if it is padded)
unpadder = padding.PKCS7(128).unpadder()
decrypted_data = unpadder.update(decrypted_data) + unpadder.finalize()

# Step 5: Output the decrypted data (it should be the private key or secret)
print("Decrypted Secrets (Private Key):")
print(decrypted_data.decode('utf-8'))  # Adjust this if the data format is different
(Приведенный выше код — это всего лишь пример того, как я пытался решить эту проблему)
  • поэтому я хочу знаете, как подойти к этой проблеме.
  • можно ли расшифровать это оффлайн или нет?


Подробнее здесь: https://stackoverflow.com/questions/792 ... rute-force
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Восстановление кошелька binance web3 с использованием пароля, QR-кода (грубая сила)
    Anonymous » » в форуме Python
    0 Ответы
    111 Просмотры
    Последнее сообщение Anonymous
  • Простой взлом пароля Excel на Python — грубая сила
    Anonymous » » в форуме Python
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Поворот массива вправо на K мест (грубая сила)
    Anonymous » » в форуме C++
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Использование Binance Api для проверки адреса кошелька
    Гость » » в форуме Php
    0 Ответы
    82 Просмотры
    Последнее сообщение Гость
  • Python / Binance API — Как получить позицию по фьючерсам Binance Leaderboard из API?
    Anonymous » » в форуме Python
    0 Ответы
    62 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»