10 июня 2011, 2:19:13 PM   # 1
 
 
Сообщений: 33
Цитировать по имени
цитировать ответ
по умолчанию Re: Перерасчет хэш в Python

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Всем привет,

Я пытаюсь пересчитать хэш, но я думаю, что я делаю где-то гигантская неразбериху.
Я прикрепил свой код, будет ли кто-нибудь хочет намекнуть меня в правильном направлении?

благодаря

<код>
импорт hashlib

Защиту i2w (целое число):
    """Преобразование целого числа в 4 байта слова в строке.
    Поднимем исключение, если переполнение."""
    работа = бен (целое число) [2 ::]. zfill (32)
    если Len (работа) > 32:
        поднять (OverflowError (целое число))
   
    TMP = список ()
    в то время как Len (работа) > 7:
        часть = работа [8]
        работа = работа [8:]
        символ = CHR (интермедиат (часть 2))
        tmp.append (символ)
       
    Возвращение ( ''. присоединиться (TMP))


если __name__ == '__main__':
    # Содержание генеза блока: http://blockexplorer.com/b/0
    #"гашиш":"000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f",
    #"вер": 1,
    #"prev_block":"0000000000000000000000000000000000000000000000000000000000000000",
    #"mrkl_root":"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
    #"время": 1231006505,
    #"биты": 486604799,
    #"данное время": 2083236893,
    #
    хэш = "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f"
    # Попробуйте воспроизвести выше хэш с данными ниже
    v = 1
    р = "0000000000000000000000000000000000000000000000000000000000000000"
    м = "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
    т = 1231006505
    б = 486604799
    п = 2083236893
   
    TMP = i2w (по объему) + p.decode ( 'шестигранной') + m.decode ( 'шестигранной') + i2w (т) + i2w (б) + i2w (п)
   
    один = hashlib.sha256 ()
    one.update (TMP)
    hash_one = one.digest ()
   
    два = hashlib.sha256 ()
    two.update (hash_one)
    hash_two = two.digest ()
   
    печать (хэш)
    печать (hash_two.encode ( 'шестигранной'))

<вывод>
>>> 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
>>> f40519089bfd56ee63f6207f11e69707ac85e5ca20ab0e4aeaa468dbc72e7ae0
       
Martin P. HELLWIG сейчас офлайн Пожаловаться на Martin P. HELLWIG   Ответить с цитированием Мультицитирование сообщения от Martin P. Hellwig Быстрый ответ на сообщение Martin P. Hellwig


Как заработать Биткоины?
Без вложений. Не майнинг.


10 июня 2011, 3:11:44 PM   # 2
 
 
Сообщений: 33
Цитировать по имени
цитировать ответ
по умолчанию Re: Перерасчет хэш в Python

Получил 1806 Биткоинов
Реальная история.





Ничего я вижу уже несколько ошибок, я буду стараться, чтобы преобразовать http://pastebin.com/Ya3604J0
И будет обновлять это здесь, как только я что-то работать.
Martin P. HELLWIG сейчас офлайн Пожаловаться на Martin P. HELLWIG   Ответить с цитированием Мультицитирование сообщения от Martin P. Hellwig Быстрый ответ на сообщение Martin P. Hellwig

10 июня 2011, 6:28:40 PM   # 3
 
 
Сообщений: 33
Цитировать по имени
цитировать ответ
по умолчанию Re: Перерасчет хэш в Python

Как и было обещано:


Код:
#! / USR / бен / окр питон
# Питон Эквивалент http://pastebin.com/Ya3604J0
импорт hashlib

# Это данные из блока «генезис», см: http://blockexplorer.com/b/0
Версия = 1
PREV_BLOCK = "0000000000000000000000000000000000000000000000000000000000000000"
MERKLE_ROOT = "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
TIMESTAMP = 1231006505
BITS = 486604799
NONCE = 2083236893

Защиту _hex_word_from_integer (целое число):
    """Преобразование целого числа в 4 байта слова в строке.
    Поднимем исключение, если переполнение."""
    работа = бен (целое число) [2 ::]. zfill (32)
    если Len (работа) > 32:
        поднять (OverflowError (целое число))
   
    TMP = список ()
    в то время как Len (работа) > 7:
        часть = работа [8]
        работа = работа [8:]
        символ = CHR (интермедиат (часть 2))
        tmp.append (символ)
   
    Возвращение ( ''. присоединиться (TMP) .encode ( 'шестигранной'))

Защиту _hex_value_byteswap (hex_string):
    "Поменяйте порядок следования байтов в шестнадцатеричной строки."
    работа = hex_string [::]
    Темп = список ()
    в то время как Len (работа) > 1:
        # Разбивает строку в части два
        часть = работа [0: 2]
        работа = работа [2 ::]
        temp.append (часть)
   
    Темп = темп [:: - 1] # обратной темп
    вернуться ( ''. присоединиться (темп))
   
Защита основные ():
    # Формирование заголовка
    заголовок = список ()
    header.append (_hex_word_from_integer (версия))
    header.append (PREV_BLOCK)
    header.append (MERKLE_ROOT)
    header.append (_hex_word_from_integer (ТШЕЗТАМР))
    header.append (_hex_word_from_integer (биты))
    header.append (_hex_word_from_integer (NONCE))
   
    # На месте byteswap элементов в списке заголовков
    для индекса в диапазоне (LEN (заголовок)):
        Заголовок [индекс] = _hex_value_byteswap (заголовок [индекс])
       
    # Generic информация
    заголовок = '' .join (заголовок) .decode ( 'шестигранной')
    печать ( 'SizeOf (block_header) =% s' % Len (заголовок))
    текст = "Блок заголовок (в человеческом представлении читаемых шестнадцатеричного):% s"
    печать (текст% header.encode ( 'шестигранной'))
   
    # Первый хеширования
    хэш = hashlib.sha256 ()
    hash.update (заголовок)
    текст = "Ненужное Первый проход Контрольная сумма:% s"
    текст = текст% _hex_value_byteswap (hash.hexdigest ())
    печать (текст)
   
    # Второй хеширования
    следующая = hash.digest ()
    хэш = hashlib.sha256 ()
    hash.update (далее)
    текст = "Целевая Второй Пасс Контрольная сумма:% s"
    текст = текст% _hex_value_byteswap (hash.hexdigest ())
    печать (текст)
   
если __name__ == '__main__':
    главный()
Martin P. HELLWIG сейчас офлайн Пожаловаться на Martin P. HELLWIG   Ответить с цитированием Мультицитирование сообщения от Martin P. Hellwig Быстрый ответ на сообщение Martin P. Hellwig

11 июня 2011, 1:48:47 AM   # 4
 
 
Сообщения: 112
Цитировать по имени
цитировать ответ
по умолчанию Re: Перерасчет хэш в Python

Глядя на ваш код, у вас есть некоторые вопросы порядка байтов:

Во-первых, функция i2w. Я слишком устал, чтобы на самом деле это исправить, так что я пошел вперед и использовал модуль структура (Вы должны посмотреть в использовании, он делает жизнь намного проще):
Код:
Защиту i2w (целое число):
    """Преобразование целого числа в 4 байта слова в строке.
    Поднимем исключение, если переполнение."""
    #The < выступает за небольшим обратным порядком байтов, и я для неподписанных Int
    вернуться struct.pack ("<я", Целое число)

Затем, при сборке заголовка, вам все еще нужно обратить р и м:
Код:
TMP = i2w (по объему) + p.decode ( 'шестигранной') [:: - 1] + m.decode ( 'шестигранной') [:: - 1] + i2w (т) + i2w (б) + i2w (п )

И, наконец, при распечатке результата, вы должны полностью изменить его тоже:
Код:
печать (hash_two [:: - 1] .encode ( 'шестигранной'))
titeuf_87 сейчас офлайн Пожаловаться на titeuf_87   Ответить с цитированием Мультицитирование сообщения от titeuf_87 Быстрый ответ на сообщение titeuf_87

11 июня 2011, 10:07:48 AM   # 5
 
 
Сообщений: 33
Цитировать по имени
цитировать ответ
по умолчанию Re: Перерасчет хэш в Python

Здравствуй,

Как вы можете видеть, что я нашел мои ошибки, исправил и отправил обновленный код, прежде чем ответил, жаль тратить время.
Martin P. HELLWIG сейчас офлайн Пожаловаться на Martin P. HELLWIG   Ответить с цитированием Мультицитирование сообщения от Martin P. Hellwig Быстрый ответ на сообщение Martin P. Hellwig



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW